3

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

当它从应用程序启动时 -> 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 个相同类型的活动(使用通知时发生)

有人可以帮我解决这个问题吗?

4

1 回答 1

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);
于 2013-07-31T15:04:33.547 回答