2016-06-22 13 views
0

私は2つのアンドロイド活動をしています(A1とA2と呼ぶことができます)。最初の目的は、いくつかの線形レイアウト項目を表示することではありません。また、新しいアイテムを追加するボタンも備えています。以下の意図を使用して追加ボタンをクリックすると:アンドロイドの活動は一時停止していません

//... 
Intent intent = new Intent(this, CreateActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
//... 

アプリケーションが最初の一時停止A2 に切り替える必要があります。 A2でタイプにアクセスすると、私はこれでA1に戻ります:

//... 
Intent intent = new Intent(super.getContext(), HomeActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
intent.putExtra("type", this._type); 
super.getContext().startActivity(intent); 
//... 

インテント、新しいアイテムをレイアウトに追加します。 今、A2からA1に切り替えるたびに呼び出されるonCreate, onResume, onPauseメソッドがあります。それは正常なアンドロイドの行動ですか?

は、私の知る限りアクティビティのライフサイクルを理解されるようにフラグNEW_TASK、およびCLEAR_TASK

。彼らが呼ばれるている活動を一時停止する新しいプロセスを開く私はアンドロイドで活動を切り替えるについて、いくつかの異なる資料を読むのが、didnのしました明示的にアクティビティにポーズをとるように指示し、onCreateなどをもう一度呼び出さない方法のポイントを得ます。

+0

なぜIntent.FLAG_ACTIVITY_NEW_TASKとIntent.FLAG_ACTIVITY_CLEAR_TASKを使用しますか? –

+0

これらの目的は、A1を一時停止する新しいタスクを作成するためにAndroidに明示的に伝えることでした。 2番目のタスクはタスクを終了し、A1に戻り、onResumeをトリガーします。 – hGen

+0

uはインテントフラグを持つ行を単に削除することができ、A2アクティビティからthis.finish()を呼び出すとタスクが終了します –

答えて

1

は、私があなたにバックアップする必要があるときにuはちょうど活動が

(Intent.FLAG_ACTIVITY_NEW_TASK) 

フラグなしと比べA2を開始することができ、uは1を持っているとA2活性の別のものを作成しますので、あなたの活動A1は、2回を作成し、ここだと思います活動が部分的に表示されているとき、A1コール

A2.this.finish() 

は、これが役立つとA1 onPauseが呼ばれ

+0

'finish()'を使用して余分に転送することができます – hGen

+0

ちょうどA2を開始し、 A2.this.finish()は作業を終了し、A2はスタックからポップし、A1は再び上になります。あなたは新しいA1アクティビティを作成する必要はありません。 –

1

OnPause()を呼び出しを開始すると思いますユーザーはユーザーと対話できません。あなたのケースでは、次のアクティビティが開始されるとき、最初のアクティビティはonStop()を呼び出します。 onPause()は、警告ボックスまたはダイアログボックスbixが画面に表示されている場合にのみ呼び出されます。 onStop()にコードを書いてみてください。

1

今、私はA2からA1に切り替えるたびに呼び出されるonCreate、onResume、onPauseメソッドを持っています。

あなただけのA1に戻るにはA2内finishを呼び出すsuper.getContext().startActivity(intent);

で活動を再作成するクエリので、これは正常です。

フラグIntent.FLAG_ACTIVITY_REORDER_TO_FRONTをインテントに入れることもできます。 A2活動は破壊されない。

0
  1. FLAG_ACTIVITY_NEW_TASK - >このフラグは、したがって、最初にこれを削除し、新たな活動を開始します。あなたがこの方法を、以下のではなく、startActivity()

startActivityForResult

そして、あなたは

にコールバックを取得することにより、その後、A1に続いstartActivityをA2をいくつかのデータを送信する場合は
  • セカンド

    onActivityResult()

  • 関連する問題