从小部件打开应用程序时返回堆栈导航不起作用
Posted
技术标签:
【中文标题】从小部件打开应用程序时返回堆栈导航不起作用【英文标题】:back stack navigation when opening the app from a widget is not working 【发布时间】:2018-05-26 17:37:04 【问题描述】:我想在用户单击小部件中的产品时启动 DetailActivty
我使用的代码是这个。设置 PendingIntentTemplete
ProductWigetProvider.class
Intent detailActivityIntent = new Intent(context, ProductDetailActivity.class);
TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context);
taskStackBuilder.addParentStack(ProductDetailActivity.class);
taskStackBuilder.addNextIntent(detailActivityIntent);
PendingIntent pendingIntent = taskStackBuilder.getPendingIntent( 1,PendingIntent.FLAG_UPDATE_CURRENT);
views.setPendingIntentTemplate(R.id.widget_list_view,pendingIntent);
和这个代码来设置fillInIntent ProductRemoteViewFactory.class
Intent fillInIntent = new Intent();
fillInIntent.setData(uri);
views.setOnClickFillInIntent(R.id.widget_list_item_container,fillInIntent);
我的清单是
<activity
android:name=".ui.EditProductActivity"
android:label="@string/title_activity_add_new_item"
android:parentActivityName=".ui.ProductDetailActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.dharmaraj.inventorymanager.ui.ProductDetailActivity" />
</activity>
当我从小部件打开 DetailActivty,然后按回时,应用程序关闭而不打开主 CatalogActivty。
【问题讨论】:
【参考方案1】:尝试类似于以下代码的代码(旨在从通知中启动详细信息活动):
Intent backIntent = new Intent(context, MainActivity.class);
backIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Intent action = new Intent(context, DetailActivity.class);
PendingIntent operation =
PendingIntent.getActivities(this, 0, new Intent[] backIntent, action, PendingIntent.FLAG_CANCEL_CURRENT);
希望有帮助!
【讨论】:
是的,它成功了!你能解释一下它为什么起作用以及我的代码有什么问题吗?以上是关于从小部件打开应用程序时返回堆栈导航不起作用的主要内容,如果未能解决你的问题,请参考以下文章
导航 PopUpToInclusive 不起作用?重新打开应用程序时,它会打开登录片段而不是电子邮件登录片段