2016-11-29 4 views
2

Activity、standard、singletop、singletask、singleInstanceの4つの起動モードがあります。前の3つは比較的簡単に理解でき、広く使われています。しかし今までは、singleInstanceを使用したシナリオは見つかりませんでした。Android:singleInstance launchmodeを使用する場合

Some of the real use case is an Activity for Launcher or the application that you are 100% sure there is only one Activity

いずれかが前にそれを使用していますか?

+0

http://stackoverflow.com/questions/3219726/android-singletask-or-singleinstance-launch-mode – sasikumar

+0

これは役立ちます:[AndroidのアクティビティのlaunchModeを理解する:standard、singleTop、singleTask、singleInstance](https:///inthecheesefactory.com/blog/understand-android-activity-launchmode/en) – Sar

答えて

0

SingleInstance起動モードは、完全に1つのアクティビティとして実装されているアプリケーションでのみ使用する必要があります。 一度に1つのインスタンスのみが存在します。システムは、このタイプを保持するタスクに他のアクティビティを起動しません。それは常にそのタスクの単一のメンバーであり、ここから開始されるアクティビティは別々のタスクに開かれます。あなたはtask.Itsタスクでのみ活動の一部であることをどの他の活動をしたくないとき

+0

この動作をさせるために、あなたは 'singleInstance'起動モードを使う必要はありません。標準的な起動モードでも、このような動作が得られます。一般的には、 "ホーム画面"の置き換えをビルドしていない限り、 'singleInstance'起動モードを使うのは悪い考えです。 –

-1

singleInstanceのlaunchmodeが使用されます。 このlaunchmodeは許可していません。

+0

私は本当にこれが質問に答えるとは思わない。私はそれが正しいかどうかを見るためには時間がかかりすぎて、それを見ても退屈ですが、OPの質問には答えません_ "singleInstance'起動モードはいつ使うべきですか?_ –

+0

編集された答え。もう一度確認してください。 –

+0

これで、なぜタスクに1つのアクティビティしか持たないのですか?まだ質問に答えていない:) – IlyaEremin

0

singleInstance起動モードを使用する理由はありません。

"ホームスクリーン"の交換またはランチャータイプのアプリケーションを構築する場合は、Activityが常にそのタスクのルートになるように、singleInstanceまたはsingleTask起動モードを使用します。これにより、別のアプリケーションがActivityを起動した場合、その呼び出しのアプリケーションにはActivityが起動せず、Activityのインスタンスが1つしか作成されないことが保証されます。

"ホームスクリーン"代替アプリケーションを作成している場合は、他のアクティビティを起動するときに常にIntent.FLAG_ACTIVITY_NEW_TASKを指定することで、他のアクティビティが自分のタスクに起動しないようにすることができます。その場合、起動モードsingleTaskを使用することができます。したがって、起動モードsingleInstanceを使用する理由はありません。しかし、当時のAndroidのオリジナル開発者にとってはおそらく分かりませんでした。

関連する問題