Android:点击通知

时间:2015-07-25 07:16:35

标签: android

这是我用来为我的通知创建PendingIntent的代码。

Intent notificationIntent = new Intent(context, Activity1.class);

PendingIntent myIntent = PendingIntent.getActivity(context, 0,notificationIntent, 0);

此PendingIntent在单击通知时启动Activity1。 如何才能简单地重新打开应用并转到最新的活动(就像点击启动器图标一样),而不是在点击通知时启动新的活动?

4 个答案:

答案 0 :(得分:2)

  

Activity1就是一个例子。我在应用程序中有多个Activity。我只是想重新打开应用程序并转到最近的活动

注意:对我来说这看起来像是错误的设计,因为通知应允许用户输入与通知相关的活动。

从技术上讲,您可以创建重定向活动,并且您的通知意图应在点按时启动。在onCreate()中,您可以检查要将用户重定向到哪个活动(您可以在SharedPreferences中保留此信息,并且每个活动都会在onCreate()中写入此信息(如果您有,则在基类中创建该信息)然后在重定向器中,您可以定期调用startActivity()进行上一次活动并致电finish()以结束您的重定向器。此外,您的重定向器活动不需要任何布局,因此添加

android:theme="@android:style/Theme.NoDisplay"

到它的Manifest条目(当然你也不需要调用setContentView()

答案 1 :(得分:0)

通过将活动的launchMode更改为singleTask来创建Activity1作为单一任务活动......

答案 2 :(得分:0)

将您的活动设置为launchMode="singleTop"中的Manifest.xml,然后使用此代码代替您上面使用的代码重新打开活动代码:

Title = "YourAppName";
Text = "open";
notificationIntent = new Intent(this, Activity1.class);
cIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(getApplicationContext(), Title,   Text, cIntent);

答案 3 :(得分:-2)

您可以在清单文件中更改挂起意图所针对的活动的android:launchMode。

通常,您可以使用singleTop,当目标活动已经位于任务堆栈之上时,它将重用相同的实例(即:在您离开应用程序之前显示活动)。

如果您只想保留活动的单个实例,也可以考虑使用SingleTask和SingleInstance。