これを行うためのより公式な方法があるかもしれませんが、これが私がこれを達成する方法です。
たとえば、現在参加しているアクティビティ (FirstActivity と呼びます) と、別の「ヘルパー」アクティビティ (SecondActivity と呼びます) の 2 つのアクティビティしかないふりをします。
最初のもの (再起動したいもの) には、アプリの再起動を開始するボタンがあります。
restartButton.setOnClickListener(new OnClickListener(){
@Override
onClick(View v){
//when clicked it starts the helper activity and closes the one you're in
startActivity(new Intent(this, SecondActivity.class));
finish(); //or you could use FirstActivity.onDestroy(); if you want it completely dead
}
});
2 番目のアクティビティ: 全体的な目的は、基本的にアプリからアプリを再起動できるようにすることです (他のすべてを閉じてから、この中で再起動します)。
Class SecondActivity extends Activity{
@Override
onCreate(Bundle savedInstanceState){
...
//it restarts the old activity so it's new and ends this one
startActivity(new Intent(this, FirstActivity.class));
finish(); //or you could use SecondActivity.onDestroy(); if you want it
}
}
これにより、最初のアクティビティが完全に再開されます。それがあなたが望むほど徹底しているかどうかはわかりませんが、この種のことを行う別の方法は本当にありません.