从Activity而不是父级返回主屏幕

时间:2013-07-31 13:09:14

标签: android android-intent android-activity

我的音乐播放器活动不符合我的要求。此活动可以从应用程序内部,通知栏以及从后台切换/恢复应用程序时打开。

从应用程序启动时 - > backPress on activity - >返回上一个应用活动。行

从通知启动时 - > backPress on activity - >返回主屏幕(没关系)

When resumed from homeScreen/recent apps -> backPress on activity -> returns to home screen (not OK) - 用户假设回到应用程序,因为此活动是一个叶子,而标签活动是根活动。

我想在回按时回到父活动,而不是在主屏幕上(当从通知恢复时,如果返回到主屏幕则可以,但在这种情况下两种变体都可以)

<activity android:name=".player.PlayerActivity"
                    android:configChanges="keyboardHidden|orientation"
                    android:label="@string/audio_player_activity_title"
                    android:launchMode="singleInstance"/>

并开始活动:

//this intent is started from a fragment (SherlockFragment)
Intent i = new Intent(getActivity(), PlayerActivity.class);
startActivity(i);

注意: 我希望单个实例避免在屏幕上运行相同类型的2个活动(在使用通知时发生)

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

当您使用launchMode:“singleInstance”时,您的活动将在新任务中启动: [http://developer.android.com/guide/topics/manifest/activity-element.html][1] 这就是为什么你没有看到后栈的正常行为。 为了确保android一旦你的活动实例化,你可以设置标志:FLAG_ACTIVITY_REORDER_TO_FRONT当你启动你的活动时

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);