2017-04-27 15 views
0

私のアプリケーションのすべてのスレッドを終了し、アプリケーションを再起動する必要があります。私はいくつかの方法でグーグル、私はアプリを殺すためにこの方法を使用しています。しかし私は 私のアプリを再起動する方法を知らない。どのようにアプリスレッドを終了して再起動しますか?

android.os.Process.killProcess(android.os.Process.myPid()); 

解決方法を教えてもらえますか?ありがとう。

+0

なぜあなたはこれを行う必要があると思いますか?あなたが実際にこれをしたいと思うことはほとんどありません。 –

+0

[Tinker](https://github.com/Tencent/tinker)などのホットフィックスを使いたいです。私がパッチをダウンロードすると、パッチを動作させるためにアプリケーションを再起動する必要があります。 –

+0

あなたは 'recreate();'を使うことができます。 –

答えて

0

1つのプロセスで、AlarmManagerでアラームをスケジュールして、数秒でいくつかのアクティビティ/サービス/受信機を開き、現在のプロセスを終了できます。しかし、Androidの新しいバージョンでは、あなたが望むときに正確に発射される可能性は低い(数分の遅延が予想される)。

もう1つの選択肢は、最初のプロセスを強制終了する直前に呼び出すアプリケーションの2番目のプロセスに「再起動」サービスまたは受信者を追加することです。その後、再起動サービスは、最初のプロセスが終了するようにbgスレッドで数秒待ってから、最初のプロセスでコンポーネント(アクティビティ/レシーバ/サービス)を呼び出して再起動します。

関連する問題