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」就足夠了。