2016-07-18 12 views
0

ランチャーアイコンが既に起動していても、そのアプリケーションが起動しているという問題があります。私はその活動のためにsingleTaksを使用し、多くのStackoverflow Answersが言った - >これは問題を解決するはずです - しかし、それはありません。あなたが見ることができるようにランチャーがクリックされてもアプリケーションが起動していても、起動しています

<activity 
    android:name=".activities.ActivitySplash" 
    android:launchMode="singleTask"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

iはlaunchModesingleTaskであると定義しました。私はアプリケーションを開きます。画面Xに移動します(私はStartscreenに留まることさえあり、同じ効果があります)、今度はホームボタンを押します。ランチャーアイコンをもう一度押すと、既に実行中のアプリケーションはポップアップしないか、または再開しています(望むように呼び出す)。代わりに、アプリケーションは完全に新しい状態で開始されます。

singleTaskが動作しない場合、どうすればその動作を防ぐことができますか?

+0

あなたのアクティビティを退去させるかどうかを制御することはできません。 Android OSはそれを処理します。時間が過ぎたり、何か他のリソース(RAMが特に必要)が必要な場合、あなたのアクティビティは破壊されます。 – Vucko

+0

時間は数秒で起こっているので、私の問題とは無関係です。私はWhatsappをテストして、それを自分のアプリの動作と比較しました。 Whatsアプリは、すでに実行中の場合は常に再開します。たとえそれが何時間もバックグラウンドにあったとしても。私のアプリは、それがバックグラウンドに数秒間いるときにも再開しません。 – Mulgard

+0

さて、whatsappはおそらく 'onCreate()'と 'onResume'で' savedInstanceState'パラメータを使用しています:) – Vucko

答えて

1

SingleTopで試してみてください:

対象タスクがすでにそのスタックの最上部に活動 の既存のインスタンスを持っている場合、そのインスタンスは、新しい意思( でonNewIntent()の呼び出し)を受け取ります;新しいインスタンスは作成されません。例えば の状況では、 "singleTop"アクティビティの既存のインスタンスがターゲットタスクにあり、 スタックの上部にない場合や、スタックの最上部にあり、ターゲットには存在しない場合などタスク - 新しいインスタンスが作成され、スタックにプッシュされます。

+0

それだ。ありがとうございました。 – Mulgard

関連する問題