我的Android应用程序中有一个非常奇怪的行为。下面是发生的事情:
如果我“启动”应用程序(单击它的图标)并通过startActivity(Intent)启动一个活动,它工作得很好。如果我随后添加一个小部件并单击它以通过setOnClickPendingIntent()启动相同的意图,它也可以很好地工作。
现在,如果我点击后退按钮,直到应用程序“关闭”(即,我返回到主屏幕),并点击小部件,活动显示ok。但是,当我尝试从应用程序中启动相同的活动/意图时,它不再起作用。该活动未启动,我仍停留在同一屏幕上。我调试了代码,startActivity(Intent)方法的调用与前面完全一样(执行的是完全相同的代码段)。
如果我返回到主屏幕并再次“启动”应用程序(单击它的图标),一切都会恢复正常。
任何可能导致问题的原因的想法。
手机是Android 2.3.3。该应用是基于Android 2.1-update1 (API Level 7)构建的。
发布于 2011-07-15 00:29:00
我找到了问题所在。
小部件通过设置标志intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);来启动意图
在我的列表视图活动中,我使用相同的标志来启动意图
Intent intent = new Intent("x.y.NEWS_DETAIL");
intent.putExtra(NewsConstants.ISSUE_ID, newsId);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(intent);由于某些原因,当活动已在历史记录中时,使用FLAG_ACTIVITY_NEW_TASK请求该活动会阻止显示该活动。我通过删除标志并从当前上下文而不是应用程序上下文启动intent来修复代码:
Intent intent = new Intent("x.y.NEWS_DETAIL");
intent.putExtra(NewsConstants.ISSUE_ID, newsId);
startActivity(intent);我现在必须弄清楚这个标志对PendingIntent有什么影响,以及它是否应该与小部件一起使用。
https://stackoverflow.com/questions/6685654
复制相似问题