カスタム URL を作成してリッスンするアプリを作成しました。私の問題は、アプリの複数のインスタンスです。たとえば、URL を作成し、それを SMS で友人に送信します。その後、アプリでその SMS (URL を含む) を開きます。これにより、この URL を開くアプリの新しいインスタンスが作成されます。一度に 1 つのインスタンスのみが存在する必要があります。どうすればこれを達成できますか。
ありがとう、
カスタム URL を作成してリッスンするアプリを作成しました。私の問題は、アプリの複数のインスタンスです。たとえば、URL を作成し、それを SMS で友人に送信します。その後、アプリでその SMS (URL を含む) を開きます。これにより、この URL を開くアプリの新しいインスタンスが作成されます。一度に 1 つのインスタンスのみが存在する必要があります。どうすればこれを達成できますか。
ありがとう、
タグやマニフェスト ファイルに属性を追加して、次のいずれかに設定できandroid:launchMode=""
ます。activity
onNewIntent()
: アクティビティのインスタンスがターゲット タスクの先頭に既に存在する場合、システムは、アクティビティの新しいインスタンスを作成するのではなく、メソッドの呼び出しを通じてそのインスタンスにインテントをルーティングします。URL を開くAndroidManifest.xmlandroid:launchMode="singleTop"
の Activity に設定します。例えば:
<activity android:name="com.abc.MainActivity" android:label="app_name"
android:launchMode="singleTop">
さらに、新しいものをキャッチしたい場合Intent
は、アクティビティ コードで次のメソッドをオーバーライドします。
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent); //set new intent as current intent
}
に使用しandroid:launchMode="singleTask"
てください。詳細については、アクティビティの LaunchModeに関するこのドキュメントを確認してください。Activity
AndroidManifest.xml