ポートで UDP ソケットを使用するアクティビティがあります。ホームボタンを押すと、アクティビティがバックグラウンドになり、OnPause()およびOnStop()メソッドが呼び出されます。UDPパケットを受信したら、アクティビティを再開したいと思います。他の投稿を読んで、私がしなければならないことを理解しています:
android:launchMode="singleTask"アクティビティを(またはsingleInstance)として宣言します。- 次に、アクティビティを再開したいとき:
インテント インテント = 新しいインテント(this.getApplicationContext(), myActivity.class); Intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(意図);
この解決策は私には機能しません。への呼び出しstartActivity(intent)は、フォアグラウンドでのアクティビティを表示せず、呼び出されませんonResume()。
次のフラグは仕事をしますが、タスクをクリアして新しいタスクを再開したくありません。
Intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);