2017-08-29 66 views
2

我的Android應用程序的行爲不同,當我重新打開通過圖標或「最近使用的應用窗口集合(此按鈕與Android設備上所有打開的窗口)」瞭解Android的LaunchMode - 防止重新啓動的應用程序圖標點擊

我的目標的應用程序:

應用程序正在運行,我想它打開像我把它當我點擊應用程序圖標

我試圖改變AndroidLaunchMode,但是當我在圖標上單擊應用程序重新啓動。如果我通過最近的應用程序窗口(我看到了當前的視圖)打開我的應用程序,它會在我離開它的位置打開。 所以它應該正常工作?

我有一個科爾多瓦應用程序,我設置AndroidLaunchMode有:

<preference name="AndroidLaunchMode" value="standard" />

<preference name="AndroidLaunchMode" value="singleTask" />

<preference name="AndroidLaunchMode" value="singleTop" />

<preference name="AndroidLaunchMode" value="singleInstance" />

似乎都做同樣的。我甚至不知道什麼是正確的。

我錯了什麼?或者我理解AndroidLaunchMode錯誤並需要更改其他內容?

UPDATE:

AndroidLaunchMode不會出現在最終的AndroidManifest.xml。這個問題似乎是一些與科爾多瓦config.xml文件..

回答

1

這莫名其妙的作品:

<gap:config-file platform="android" parent="/manifest/application"> 
    <activity android:launchMode="singleInstance" /> 
</gap:config-file> 
0

Launch modes只允許您定義的活動的新實例與當前任務相關聯,這不是您尋找的唯一方法,如果您的應用程序代碼增加,您以後可能會遇到問題。

當您的活動因用戶按下「後退」或活動自行完成而被銷燬時,該活動實例的系統概念將永遠消失,因爲該行爲指示不再需要活動。

您需要處理您的活動狀態,大概有很多答案,你可以去看看,但基本上你必須:

1 .-節省:

static final String STATE_SCORE = "playerScore"; 
static final String STATE_LEVEL = "playerLevel"; 
... 


@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    // Save the user's current game state 
    savedInstanceState.putInt(STATE_SCORE, mCurrentScore); 
    savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel); 


    // Always call the superclass so it can save the view hierarchy state 
    super.onSaveInstanceState(savedInstanceState); 
} 

2.-還原。在Android官方文檔,它說,你可以在onCreateonRestoreInstanceState恢復,對於這種做法,我建議你做的onRestoreInstanceState,所以你不需要重新創建活動每次:

public void onRestoreInstanceState(Bundle savedInstanceState) { 
    // Always call the superclass so it can restore the view hierarchy 
    super.onRestoreInstanceState(savedInstanceState); 


    // Restore state members from saved instance 
    mCurrentScore = savedInstanceState.getInt(STATE_SCORE); 
    mCurrentLevel = savedInstanceState.getInt(STATE_LEVEL); 
} 

請看this Android guide

+0

就像我在自己的答案中寫道:AndroidLaunchMode做的是正確的事情。問題在於我的活動由於Cordova的問題而沒有得到AndroidLaunchMode。你的答案回答瞭如何保存活動的問題..但問題是活動仍然活躍!謝謝你的努力。 –

相關問題