安卓Activity单例模式

17

我有一个名为MainActivity的活动。这个活动启动了一个通知,其中包含一个PendingIntent,用于打开此MainActivity。

因此,要关闭应用程序,我必须点击两次后退按钮。我想将该活动设置为singleton。我尝试在清单中将singleInstance或singleTask设置为此活动,但这并不起作用。

2个回答

29

singleInstancesingleTask不建议一般使用。

尝试:

 android:launchMode="singleTop"

如需更多信息,请参阅Activity元素文档的启动模式部分

除了上述参考资料,您还应该阅读任务和返回堆栈


7
如果您需要返回至应用程序,而不创建您的活动的新实例, 您可以使用与 Android 在启动应用程序时使用的相同意图筛选器:
final Intent notificationIntent = new Intent(context, MainActivity.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

由于您在通知栏中创建的意图与 Android 用于启动应用程序的意图相同,因此将显示先前打开的活动而不是创建新的活动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接