我有一个可以创建持久通知的后台服务。当用户单击通知时,它会启动一个活动。然后用户可以按下 Home 按钮导致该活动停止。
如果用户然后再次单击通知,我想重新启动(并显示)相同的活动(如果 Android 尚未销毁它 - 我很欣赏它可以),以便 GUI 状态与用户离开时一样。
我怎样才能做到这一点?
活动清单条目
<activity android:name=".mrwidget.MrWidget" android:theme="@android:style/Theme.NoTitleBar" android:launchMode="singleTask">
<intent-filter><action android:name="android.intent.action.MAIN"> </action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
如果从按住 Home 按钮时获得的“最近的应用程序列表”中选择活动,我所追求的实际上与您获得的行为相同。
详细说明 - 当我第一次单击通知时,我使用以下方法成功创建了活动:
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mService.startActivity(i);
如果我按下主页按钮退出此活动,然后按住主页按钮以调出“最近的应用程序列表”并从那里选择活动,它按预期工作 - 活动显示在它离开的状态,所有好的。
当我在以后的任何时候也选择相同的通知时,我想要同样的行为,即它显示以前创建的活动。我尝试使用以下方法执行此操作:
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
activity.startActivity(intent);
其中“活动”是对用户第一次选择通知时创建的活动的引用,但这样做不会导致活动显示。