【发布时间】:2014-05-22 17:04:06
【问题描述】:
我的应用程序中有多个活动。其中一项活动是启动活动,这是主要的启动器活动。它启动并启动了几个由整个应用程序使用并完成的类。
然后是用户大部分时间停留的主要活动。当应用程序关闭时创建通知时,这些类将被销毁,因此应用程序会给出错误(nullpointerexception)。
如果应用程序关闭,我们需要做的是启动启动器活动,否则将主要活动放在前面。
我在这里尝试了多种解决方案。
这些解决方案都不起作用。任何帮助表示赞赏。
更新 1:
如果我们通过检查应用程序是否正在运行来选择待处理的意图应该获得哪个意图。
public boolean isApplicationRunning(Context context) {
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (RunningTaskInfo task : tasks) {
if (context.getPackageName().equalsIgnoreCase(task.baseActivity.getPackageName()))
return true;
}
return false;
}
这解决了我们在多个活动中遇到的问题。但这带来了另一个问题,如果用户处于主要活动并且收到通知,那么用户关闭应用程序但不点击通知怎么办。稍后当用户单击通知时,应用程序将再次给出 nullpointerexception,因为在创建通知时应用程序正在运行。
必须有更好的方法来处理这个问题。
【问题讨论】:
标签: android notifications google-cloud-messaging