Activity、standard、singletop、singletask、singleInstanceの4つの起動モードがあります。前の3つは比較的簡単に理解でき、広く使われています。しかし今までは、singleInstanceを使用したシナリオは見つかりませんでした。Android:singleInstance launchmodeを使用する場合
いずれかが前にそれを使用していますか?
Activity、standard、singletop、singletask、singleInstanceの4つの起動モードがあります。前の3つは比較的簡単に理解でき、広く使われています。しかし今までは、singleInstanceを使用したシナリオは見つかりませんでした。Android:singleInstance launchmodeを使用する場合
いずれかが前にそれを使用していますか?
SingleInstance起動モードは、完全に1つのアクティビティとして実装されているアプリケーションでのみ使用する必要があります。 一度に1つのインスタンスのみが存在します。システムは、このタイプを保持するタスクに他のアクティビティを起動しません。それは常にそのタスクの単一のメンバーであり、ここから開始されるアクティビティは別々のタスクに開かれます。あなたはtask.Itsタスクでのみ活動の一部であることをどの他の活動をしたくないとき
この動作をさせるために、あなたは 'singleInstance'起動モードを使う必要はありません。標準的な起動モードでも、このような動作が得られます。一般的には、 "ホーム画面"の置き換えをビルドしていない限り、 'singleInstance'起動モードを使うのは悪い考えです。 –
singleInstanceのlaunchmodeが使用されます。 このlaunchmodeは許可していません。
私は本当にこれが質問に答えるとは思わない。私はそれが正しいかどうかを見るためには時間がかかりすぎて、それを見ても退屈ですが、OPの質問には答えません_ "singleInstance'起動モードはいつ使うべきですか?_ –
編集された答え。もう一度確認してください。 –
これで、なぜタスクに1つのアクティビティしか持たないのですか?まだ質問に答えていない:) – IlyaEremin
singleInstance
起動モードを使用する理由はありません。
"ホームスクリーン"の交換またはランチャータイプのアプリケーションを構築する場合は、Activity
が常にそのタスクのルートになるように、singleInstance
またはsingleTask
起動モードを使用します。これにより、別のアプリケーションがActivity
を起動した場合、その呼び出しのアプリケーションにはActivity
が起動せず、Activity
のインスタンスが1つしか作成されないことが保証されます。
"ホームスクリーン"代替アプリケーションを作成している場合は、他のアクティビティを起動するときに常にIntent.FLAG_ACTIVITY_NEW_TASK
を指定することで、他のアクティビティが自分のタスクに起動しないようにすることができます。その場合、起動モードsingleTask
を使用することができます。したがって、起動モードsingleInstance
を使用する理由はありません。しかし、当時のAndroidのオリジナル開発者にとってはおそらく分かりませんでした。
http://stackoverflow.com/questions/3219726/android-singletask-or-singleinstance-launch-mode – sasikumar
これは役立ちます:[AndroidのアクティビティのlaunchModeを理解する:standard、singleTop、singleTask、singleInstance](https:///inthecheesefactory.com/blog/understand-android-activity-launchmode/en) – Sar