我有一個能夠啓動該應用程序的主應用程序和主屏幕小部件。 Widget將一些額外內容傳遞給Intent以將初始數據傳遞給應用程序。向主頁按鈕暫停的應用程序添加附加內容
Bundle extras = new Bundle();
extras.putString(AppWidgetConfigureActivity.EXTRA_ITEM, modeName);
Intent modeIntent = context.getPackageManager().getLaunchIntentForPackage("com.my.app");
modeIntent.putExtras(extras);
modeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(modeIntent);
在該應用的onCreate方法我得到這樣的演員:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent intent = this.getIntent();
String mode = intent.getStringExtra(EXTRA_ITEM);
...
}
一切是怎麼回事很好,如果應用程序沒有啓動或按後退按鈕停止。 但是,如果應用程序已被主頁按鈕暫停,它會從我的窗口小部件重新啓動並使用舊的額外功能,它從onResume方法開始,而不是從onCreate開始(這是顯而易見的事實),並且此時活動的Intent具有舊的額外功能,我把小部件放在了Intent中。
如何將附件從小部件傳遞給已由主頁按鈕暫停的應用程序?
如果您想在onCreate中傳遞另一個時間,則必須銷燬該活動。 onResume不允許意圖捕獲,因爲是恢復剛剛創建並剛剛使用意向的東西的回調。 如果您想重新加載活動,則可以嘗試在返回時嘗試使用'this.finish' –
不,我不想銷燬活動或以某種方式干擾標準應用程序工作流程。我想留在常見的Android的工作流程和接口。 – Grinchman