AndroidのActicityは再起動し、ライフサイクルの変更後に再起動しました

まず、コードを直接チョン再起動を投稿しました:

Intent intentReStrat = getIntent();
finish();
startActivity(intentReStrat);

私たちはそれぞれのマークのログライフサイクルを見て、これは単純なコードは実際には3行であることだが、私は、そのような時間のライフサイクルとしてonDestoryで行った場合よりも、私たちは、実際に使用することは、いくつかの間違ったがあることがわかりますとき

LogUtil.chunyLog().d("onCreat"+ this);

ライフサイクルの各における活性は、このログを持っている(プラス新しい2段階のプロセスが新しいと破壊を生成することがあるので、この背後に、異なる活動で再起動を見ることです)

OK、残りはアップ書き込みにリセットコードの先頭でボタンのクリックイベントを取得することです

実行するためにいくつかを追加します。

まず、次があるでしょう。

まず、あなたはこれらのGoがonCreat ONSTART onResume言うまでもなく、我々はhoum後ろに見、言うことを見ることができます

@これは、この活動に固有のものです1ecbcf6f

 

次に、ボタンをクリックし、Acticityを再起動します。

その後、我々は真剣に見なければならない、と我々は(@ 1ecbcf6f)私はAty1に言っ活動の便宜のために前に置きます  

その後、新しい@ 2005b14fように理解するような新しいAty2など一顧

OK、次に何が起こったの回復を

私たちは、ボタンをクリックすると、Aty1行くonPauseは、最初の中断します

その後Aty2なくなっonCreat ONSTART onResume 3つが正常に作成します

プラスAty1はonStop onDestoryが殺されたダウン

あなたが見ることができると、新しい創造は、私たちがここになることonStopとonDestoryのATY ATYに行ってきました

 

私はバインディングサービスだったので、問題は、それぞれの状況では、異なっています

呼び出しはonDestoryのATYになった後、私はATYになり、再起動を実行した後に行うことで来ていないデフォルトを復元ATYを再起動すると、デフォルトの方法を復元するサービスの内部で呼び出すonDestoryでは、これが問題の原因となりますもの、そうではないん

 

ソリューション:

みんなのソリューションは、真として保存(ASDと呼ばれる)ブール変数内のSPを保存する時にボタンをクリックして、私はSPとあった、同じではありません

次に、メソッド呼び出しサービスonDestoryは、それがtrueの場合、サービス方法、および割り当て偽のASDを呼び出すことはありません、ASDそこにあります

そして、私たちが何をシミュレートすることができますのでこと、方法は終了他の内部を実行します

 

ATYは退出ASDまでの時間に来false(デフォルト)であるので、それはボタンのクリックであれば、それは最初に、退出復旧方法にサービス終了他のコールを行きます

その後、トラブルレビューが一緒に進行を教え、よりよいがある場合、これは、私の解決策である、ない歩行サービス復元方法はないであろう真として保存ASD。

 

公開された124元の記事 ウォンの賞賛141 ビュー160 000 +

おすすめ

転載: blog.csdn.net/weixin_36838630/article/details/83622926