10

如何从以前的位置恢复我的应用程序。

请注意,它仍然处于活动状态,只是暂停了。因此,如果我单击 androids 当前应用程序按钮或应用程序图标,它会恢复正常。

但是我是谁从我的小部件中做到这一点的..

我有以下内容:

// Create an Intent to launch Activity
Intent intent = new Intent(context, LoginForm.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

这显然会启动 LoginForm 而不是仅仅恢复应用程序。

有谁知道如何做到这一点?

编辑:

只是为了澄清,我不想要任何特别的东西。我基本上想模仿按下 android 图标启动器。

4

2 回答 2

19

你基本上已经回答了你自己的问题;-)

只需模拟启动应用程序时 Android 的操作:

Intent intent = new Intent(context, LoginForm.class);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

或者你可以试试这个(假设LoginForm是你的应用程序的根活动,并且这个活动的一个实例在任务堆栈中仍然处于活动状态):

Intent intent = new Intent(context, LoginForm.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

设置FLAG_ACTIVITY_NEW_TASK 应该只是将应用程序的现有任务从后台带到前台,而无需实际创建活动的实例。先试试这个。如果它不适合你,做另一个。

于 2012-09-06T15:49:51.283 回答
1

使用它与 android 为您的启动器活动所做的相同

Intent notificationIntent = new Intent(context, SplashActivity.class);
        notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        notificationIntent.setAction(Intent.ACTION_MAIN);
        notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        PendingIntent clickActionIntent = PendingIntent.getService(context, 0, notificationIntent, 0);
于 2017-01-31T09:57:01.390 回答