我正在尝试从通知中启动一个活动,就像Android文档中解释的那样,但是当我打开通知,然后按back按钮时,HomeActivity (家长)并没有打开,相反,应用程序关闭了。我做错了什么?
Intent resultIntent = new Intent(context, MatchActivity.class);;
resultIntent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(resultIntent);发布于 2012-11-30 02:45:04
您需要为要启动的活动添加父堆栈,而不是它的父堆栈。
替换:
stackBuilder.addParentStack(MainActivity.class);通过以下方式:
stackBuilder.addParentStack( MatchActivity.class );这里假设您已经在清单(16+接口)中定义了父级:
<activity android:name=".MatchActivity"
android:parentActivityName=".MainActivity"
... />如果您是在API 16下进行开发,那么您必须将父对象定义为:
<activity android:name=".MatchActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>发布于 2016-03-20 13:59:10
如果所有的解决方案都不起作用,并且你确信你已经按照你所需要的一切去做了,你就可以卸载你的应用程序,然后重新安装carefully...then 它。对我很管用!
发布于 2015-10-19 17:25:46
Intent resultIntent = new Intent(App.getContext(), TargetActivity.class);
Intent backIntent = new Intent(App.getContext(), ParentActivity.class);
backIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
final PendingIntent resultPendingIntent = PendingIntent.getActivities(
App.getContext(), 0,
new Intent[]{backIntent, resultIntent}, PendingIntent.FLAG_ONE_SHOT);
mNotifyBuilder.setContentIntent(resultPendingIntent);这解决了我在单击通知时使用父堆栈的问题
https://stackoverflow.com/questions/13632480
复制相似问题