簡體   English   中英

小部件配置活動關閉時,啟動器活動實例將重新啟動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM