簡體   English   中英

從最近的菜單啟動應用程序不會啟動主要活動

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

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