2017-08-29 12 views
2

私はアイコンからアプリケーションまたは「最近使ったアプリウィンドウコレクション(Android上で開いているすべてのウィンドウでこのボタン)」は、Android LaunchModeを理解する - アプリのアイコンを再起動防止

私の目標を再度開いたときに私のAndroidのアプリケーションが異なる振る舞いをクリックします。

は、アプリケーションが実行されていると私はアプリのアイコン私はAndroidLaunchModeを変更しようとした

をクリックしたとき、私はそれを左のようにそれを開くようにしたいが、私はアイコンをクリックすると、アプリケーションが再起動します。最近のAppsウィンドウ(私の現在のビューが表示されている)上に自分のアプリケーションを開くと、それは私が残した位置に開きます。 それで何とかうまくいくはずですか?

私はコルドバのアプリケーションを持っていると私は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には表示されません。

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

答えて

1

...コルドバのconfig.xmlファイルで何かのようですこれはあなたが探している唯一のアプローチではなく、後であなたのアプリケーションコードが増加した場合にはおそらく問題が発生します。

ユーザーが[戻る]を押すかアクティビティが終了してアクティビティが破棄された場合、アクティビティが不要になったことを示すため、そのアクティビティのシステムの概念は永遠に失われます。あなたの活動状態を処理する必要が

、それについて多くの答えがありますが、あなたは見てみることができますが、基本的にあなたがする必要はあり:

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.-復元

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); 
} 
:公式アンドロイドドキュメントでは、それはあなたが私はあなたが onRestoreInstanceStateでそれを行うことをお勧めこのアプローチのために、 onCreateにして onRestoreInstanceStateに復元することができますので、あなたがあなたの活動のすべての時間を再作成する必要がないことを言います

this Android guideをご覧ください。

0

Launch modesを唯一のアクティビティの新しいインスタンスが現在のタスクに関連付けられている方法を定義することができます。問題は、これは何とか作品

+0

私は自分の答えで書いたように:AndroidLaunchModeは正しいことをします。問題はちょうど私の活動がcordovaの問題のためにAndroidLaunchModeを取得しなかったことでした。あなたの答えは、どのように活動を保存するかという質問に答えます。しかし、問題は活動がまだ活発でないことでした!あなたの努力をありがとうtho。 –

関連する問題