Android,将已经开始的活动带回到前面

时间:2014-02-28 04:41:50

标签: java android android-activity android-intent

我的Android应用程序有多个活动。每个活动都有一个“返回首页”按钮。例如,主要活动打开子活动A,子活动A打开子活动B.

在子活动B的屏幕上,有一个“返回首页”按钮,该按钮可以将主要活动恢复为可见性。

我已尝试过标记 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT ,但没有用。

这是我的AndroidManifest.xml的一部分:

...
<activity android:name="vn.agritrade.Main_Activity"
android:label="Agritrade"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:uiOptions="splitActionBarWhenNarrow"
android:launchMode="singleInstance">
  <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
  </intent-filter>
</activity>
...

这是我重新启动主要活动的方式:

/**
 * Relaunch main activity (called by 'Back to Home' button)
 */
public void open_main_activity(View view) {
  Intent intent = new Intent(this,Main_Activity.class);
  intent.putExtra(DEFAULT_EXTRA,"");
  intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
  startActivity(intent);    
}

我还需要什么?

3 个答案:

答案 0 :(得分:2)

使用以下代码可能会有帮助,

    Intent intentHome = new Intent(getApplicationContext(), MainActivity.class);
    intentHome.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intentHome.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intentHome.putExtra(DEFAULT_EXTRA,"");
    startActivity(intentHome);

这对我有用。

不要忘记将答案标记为对您有帮助。

答案 1 :(得分:1)

Intent.FLAG_ACTIVITY_CLEAR_TOP可以解决您的问题

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

Intent intent = new Intent(this,Main_Activity.class);
intent.putExtra(DEFAULT_EXTRA,"");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent); 

答案 2 :(得分:0)

我的最终解决方案是:

  • 保持主要活动保持开放
  • 每次我需要返回主屏幕:关闭所有子活动