私の問題は、アクティビティをそれ自体から再開する方法がわかりません。たとえば、ゲームで死亡した場合、ステージを即座に再開するためのリトライ オプションを含むメニューがあります。まさにその通りです。
この問題に関する他の多くの回答から読んだように、アクティビティをリロードするには2つの主な方法があります。
1-finish();
startActivity(getIntent());
2-recreate();
最初の方法は、アクティビティを再起動するため機能しないようですが、スタックの背面で以前に作成したものを開いたままにします。finish() ステートメントが機能していないようです。私はそれを前、後、あらゆる方法で配置しようとしましたが、取り残されたアクティビティを閉じることは決してありません.
一方、オプション番号 2 は (私の知る限り) UI スレッドの外部から呼び出すことはできず、呼び出した場合、アプリがクラッシュします。次を使用してrecreateメソッドを呼び出そうとしました:
Activity.this.runOnUiThread(new Runnable() {
public void run() {
recreate();
}
});
しかし、このアプローチでは、画面上で非常にひどい点滅が発生します。突然黒い画面が表示されますが、それは正しくないようです。