1

我有一个可用于配置小部件的活动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(); 
    } 

这些活动应该属于不同的任务。我想知道他们为什么相关。

如何防止重新启动启动器活动实例?

回答

0

我解决了它。 看起来小部件配置活动实例得到了启动器启动的那个小孩。所以我调整了下面的清单。

<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”就足够了。