他のアプリがインテントを介して起動できるようにしたいAndroidアプリがあります。これにより、他のアプリが私のものと対話し、初期入力などを提供できるようになります。
呼び出し元のアプリ(App-Aと呼びます)は次のことを行います。
Intent intent = new Intent("com.myapp.dosomething");
intent.putExtra("com.myapp.value1", "1.25");
intent.putExtra("com.myapp.value2", "bob");
startActivity(intent);
私のアクティビティは、インテントフィルターから始まります。
<intent-filter>
<action android:name="com.myapp.dosomething" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
ユーザーが私のアプリの通常のフローを実行すれば、すべてが正常に機能します。ユーザーが作業を行い、ユーザーが完了したことがわかったら、アクティビティでfinish()を呼び出します。すべてがダンディです。
ただし、アプリで何かを行う途中で、ユーザーがタスクを完了する代わりにホームボタンを押すと、大きな問題が発生します。ランチャーからApp-Aを再起動しようとすると、代わりに私のアプリがポップアップします。ユーザーは、私のアプリを強制的に強制終了しない限り、App-Aに戻ることはできません。さらに悪いことに、私のアプリは起動間でデータを保持しないように特別に設計されており、この方法で再起動すると、最初に渡された余分なデータも取得されないため、この他のアプリがまだ私を待っています。
App-Aがアプリを待ってそこに座っていないように設定するにはどうすればよいですか?アプリの動作に関係なく、実行を継続できるはずです。アプリがクラッシュしたり、値が返されない場合は、呼び出し元のアプリを永久にハングさせたくありません。
何か案は?
ありがとう。