[英]Launcher activity instance restarts when widget configuration activity closes
我有一个活动A,可用于配置小部件。 但是它也可以直接从启动器启动。 保存窗口小部件配置实例后,启动器实例将重新启动。 我想知道为什么。
首先,我从启动器开始活动。 然后,我按下“主页”按钮,以便停止活动。
现在,我单击主屏幕上的小部件,小部件配置活动实例启动。 这就是我所说的。
Intent intent = new Intent(context, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
当离开窗口小部件配置活动实例时,例如通过保存按钮单击,启动器活动实例将重新启动。
public void onClick(View v) {
settings.save();
// Signal that saving was performed and widget should be shown
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, resultValue);
BreakWidgetProvider.updateWidgets(new int[] { appWidgetId }, this);
this.finish();
}
这些活动应属于不同的任务。 我不知道他们为什么相关。
如何防止启动器活动实例重新启动?
我解决了 似乎小部件配置活动实例是启动器启动的那个的子级。 所以我调整了清单如下。
<activity
android:name=".BreakMainActivity"
android:label="@string/app_name"
android:launchMode="standard"
**android:allowTaskReparenting="false"**
**android:noHistory="true"**
android:theme="@android:style/Theme.Light" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我想allowTaskReparenting =“ false”就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.