【问题标题】:How to get identifier of an activity如何获取活动的标识符
【发布时间】:2015-01-12 10:06:41
【问题描述】:

我有一个导航抽屉,当其中一个项目被选中时,它会启动另一个活动。如果该活动是当前活动,我不想启动相同的活动(如果用户选择一个选项,则会启动一个新活动,并且他们再次从菜单中选择相同的选项)。我怎样才能知道当前的活动是什么,所以我不会重新开始相同的活动(而是简单地关闭抽屉)?

【问题讨论】:

    标签: android android-intent android-activity navigation-drawer


    【解决方案1】:

    如果您像在网站中使用页面一样使用活动,那么您需要自己管理一个“ID”。在构建菜单(活动列表)时检查的每个活动上的常量可能就足够了。

    最好不要以这种方式使用活动,因为启动活动很慢,因此不适合在菜单中的项目之间滑动。我建议使用片段。片段使管理状态更容易,加载速度更快。

    【讨论】:

      【解决方案2】:

      如果我理解正确,如果用户在活动 A 中并单击活动 B,则应呈现 B。但是用户在 A 中并单击 A,什么都不会发生。

      您可以通过为每个活动设置一个 ID 并相应地呈现来实现此目的。但是如何将 Manifest.xml 文件中的活动设置为单实例。

      <activity 
         android:name=".YourActivity"
         android:launchMode="singleInstance"/>
      

      你取得了什么成就?

      如果没有活动,操作系统会自动创建一个新活动,或者将当前存在的活动放在前面(感谢 singleInstance 属性)。

      看看这是否适合你。

      【讨论】:

      • 提醒一下,documentation on singleInstance contains this note:“其他模式——singleTask 和 singleInstance——不适用于大多数应用程序,因为它们会导致用户可能不熟悉的交互模型并且与大多数其他应用程序非常不同。”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多