2012-06-14 78 views
2

我的申請有3個活動(MainActivity,SampleActivity,TempActivity)和應用程序必須從MainActivity啓動,因爲我在AndroidManifest註冊爲的Android應用程序用錯活動

<activity 
     android:name=".MainActivity" 
     android:configChanges="keyboardHidden|orientation" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".TempActivity" 
     android:configChanges="keyboardHidden|orientation" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" > 
    </activity> 

    <activity 
     android:name=".SampleActivity" 
     android:configChanges="keyboardHidden|orientation" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
    </activity> 

當我從MainActivity切換到TempActivity和回到MainActivity,然後關閉應用程序,然後經常從TempActivity開始。
這個錯誤的行爲後,當我開始我的應用程序,它從錯誤的活動(TempActivity)開始。
請幫我解決這個問題

+1

你如何關閉你的應用程序? –

+0

通過錄制主頁按鈕 –

+0

這是問題的朋友。當您敲擊主頁時,按鈕應用程序未關閉,但仍在後臺運行。這就是爲什麼它從您按下主頁按鈕的位置恢復。 –

回答

3

當u從TempActivity活動去MainActivity你給光潔度()
例如:
意圖myIntent =新意圖(TempActivity.this,MainActivity的.class);
startActivity(myIntent);
finish();

+0

謝謝... 我認爲這是我失蹤的主要事情... –

0

這是因爲你的活動沒有被破壞,它只是暫停(檢查活動life cycle)。您可以覆蓋以執行所需的行爲。

0

你如何關閉應用程序,意味着通過home按鈕應用程序不要銷燬活動,僅停止活動。要退出您的應用程序,您需要完成應用程序中的所有活動。

0

每當你按回家按鈕,你假設你的應用程序是closed.But它不是!

根據android活動生命週期,您的應用程序將繼續在後臺運行,並且當您按下應用程序圖標時,它將從它到達背景的位置開始。

如果您使用的是TempActivity,並且如果您按Home按鈕,則它將僅從TempActivity開始。爲確保您按Home按鈕,您的活動應以MainActivity 開始,並對代碼進行以下更改。

TempActivity.java

@Override 
void onPause() 
    { 
    super.onPause(); 
    finish(); 
    } 

因此,下一次當你將打開你的應用程序也將開始與MainActivity。

+0

謝謝
我完成了MainActivity的意圖之後立即完成TempActivity,它的工作原理...
但如果這個問題再次發生,那麼我也會在onPause()完成TempActivity() –

+0

是的!完美:) –

相關問題