Android Activity单例

时间:2011-09-20 19:26:41

标签: android android-activity singleton

我有一项名为MainActivity的活动。此活动会启动一个通知,该通知具有打开此MainActivity的PendingIntent。

因此,要关闭应用程序,我必须单击两次后退按钮。我想将活动设置为单身人士。我试图将singleInstance或singleTask设置为manifest但这不起作用。

2 个答案:

答案 0 :(得分:17)

singleInstancesingleTask不建议用于一般用途。

尝试:

 android:launchMode="singleTop"

有关详细信息,请参阅活动元素文档的launchMode section

除了之前的参考文献,您还应该阅读tasks and back stack

答案 1 :(得分:5)

如果您需要在不创建活动新实例的情况下返回应用程序,则可以使用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相同,因此将显示之前打开的活动而不是创建新活动。