Android生命周期和主页按钮

时间:2014-01-04 12:30:20

标签: android android-fragments android-activity android-lifecycle

我有简单的Android应用程序,有两个活动:

  • 第一个主要活动包含带标签导航的ViewPager(3个标签,每个标签一个片段)。其中一个片段是ListFragment,它是一本联系簿(图像和文本)。

  • 第二项活动代表联系方式。

当用户点击listview联系人行时,第二个活动将以联系人详细信息开始。从这个活动返回按钮工作正常,点击后立即恢复主要活动。但我的主页按钮(操作栏中的向上按钮)有问题。当它被点击时,主活动不会被恢复,而是再次创建,它会耗费大量时间(甚至800毫秒)。

使用主页按钮片段显示卡片活动配置:

<activity
     android:name="com.sampleapp.activity.CardActivity"
     android:label="@string/title_activity_card"
     android:parentActivityName="com.sampleapp.activity.MainActivity">
     <!-- Parent activity meta-data to support API level 7+ -->
     <meta-data
          android:name="android.support.PARENT_ACTIVITY"
          android:value="com.sampleapp.activity.MainActivity" />
</activity>

当主页按钮出现时,有没有办法从堆栈中恢复主要活动(如果有)?

2 个答案:

答案 0 :(得分:0)

试试这可以帮助您获得前面的活动

Intent i = new Intent(this,YourActivityName.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);

答案 1 :(得分:0)

FLAG_ACTIVITY_CLEAR_TASK标志可能会比接受的答案标志更好:

Intent i = new Intent(this,YourActivityName.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);

来自文档:

  

如果在传递给Context.startActivity()的Intent中设置,则此标志将为   导致任何与活动相关联的现有任务   在活动开始前清除。