[英]App crashes in Android Studio. getMenuInflater().inflate(R.menu.activity_main, menu); doesn't exist?
[英]Starting app from the recent menu doesn't start the main activity
我有3個活動(MainActivity,TwitterActivity,WebBrowserActivity)。 WebBrowserActivity用於顯示來自Twitter的網絡信息。
清單:1。
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2。
<activity
android:name=".TwitterActivity"
android:label="@string/app_name"
android:launchMode="singleInstance" >
<!-- Used for OAuth callback -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="callback"
android:scheme="x-bker-oauth-twitter" />
</intent-filter>
</activity>
3。
<activity android:name=".TwitterWebBrowser" />
開始Twitter:
Intent myIntent = new Intent(mContext, TwitterActivity.class);
mContext.startActivity(myIntent);
當發布twitt時,我關閉TwitterActivity(使用finish();方法),並顯示MainActivity。 比按Home鍵轉到Android,然后按Home鍵並按我的應用程序圖標,然后轉到TwitterActivity,但是我需要轉到MainActivity。 怎么辦
它僅適用於android 2.3.7及更低版本。
在TwitterActivity的清單條目中,將android:launchMode="singleInstance"
更改為android:launchMode="singleTop"
。
我認為您正在設置launchMode
因為您希望能夠跳到Twitter應用程序或網頁以從TwitterActivity授權用戶,然后在完成后返回到TwitterActivity的相同實例。 在這種情況下,TwitterActivity將位於任務堆棧的頂部,因此singleTop
將告訴系統重用它。
singleInstance
的問題在於,它使活動成為任務中的唯一活動,這可能可以解釋為什么最近菜單正在啟動TwitterActivity。 (有關活動元素文檔的更多信息)。
如果確實需要使用singleInstance
,則應考慮將其分配給它自己的任務,並將其從最近的對象中排除,例如(使用您自己的名稱作為taskAffinity
):
<activity
android:name=".TwitterActivity"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:taskAffinity="com.example.twitter"
android:excludeFromRecents="true">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.