特定の状況では、アプリケーションでexit()
に電話する必要があります(これは最善の方法ではありませんが、これは問題ではありません)。また、クラッシュについてユーザーに知らせる新しいダイアログを表示したい。新しいアクティビティが起動しない場合があります
新しい放送受信機である新しいアクティビティクラスを作成し、それをマニフェストに登録しました。次に、私が呼ん:
Intent intent = new Intent(this, AppCloseReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0);
try
{
pendingIntent.send();
}
catch(Exception ex){}
System.exit(0);
問題は、新しいウィンドウが時々を表示されていることです!最初に、新しいアクティビティを開始する前にSystem.exit(0);
が起動すると思います(非同期呼び出しのため、ドキュメントでこれを見つけることができませんでした)ので、pendingIntent.send();
とSystem.exit(0);
の間にThread.sleep(1000)
を追加しましたが、結果は同じ - 新しいウィンドウが表示される。ログには何もありません。例外もありません。
新しいアクティビティは単なる静的テキストです。
これは絶対に信頼できるものではありません。 'System.exit() 'を呼び出すと、基本的にVMがシャットダウンされます。 VMをシャットダウンしたときに何か起こることを保証することはできません。あなたは確かに何かがUIに表示されることは期待できません。ユースケースについて説明してください。代替案を提案することもできます。 –
私のユースケースは、特定の条件下で「終了」して、アプリケーションがなぜ停止したのかをユーザに伝えることです。代わりに、私は通知を使用していますが、私は画面にとどまり、ユーザーが手動で閉じるまで待機する必要がある、より永続的な解決策が必要です。 – nikitablack