2012-02-23 7 views
0

私はアンドロイドの開発に慣れていて、アンドロイドがどのようにアクティビティの生活をしているかを知ることができます。Android Java:アクティビティライフを理解していますか?

...私はアプリを持っていると私はそうのように携帯電話のカメラfuncationalityを使用するには、ボタンを押すと

public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 
       startActivityForResult(cameraIntent, CAMERA_VIDEO_REQUEST); 
      } 

方法onPause()またはonDestroy()や他のものに動作しますか?

私は戻るボタンを押すか、ホームボタンを押してください、私はカメラ機能を破壊したり一時停止しなければならないのonCreate()

protected void onPause(){ 
    super.onPause(); 

} 

外にこれを持っていますか?もしそうなら、私はまだその方法を理解しようとしていますか?

ありがとうございます!

+0

あなたはAndroidを使い慣れていませんが、さまざまなライフサイクルメソッドに簡単なロギングステートメントを追加するだけで、アプリと対話するときに何が起こっているのかを素早く知ることができます... onPauseは常にonStopの前に呼び出されます。 – mastDrinkNimbuPani

答えて

1

あなたの現在の活動から新たな活動を開始すると、あなたの現在の活動

  • ポーズ
  • 停止
  • 一時停止

の2つの可能性があります。 別のアクティビティがフォアグラウンドであるが、焦点があるが、これはまだ目に見える。つまり、このアクティビティの上に別のアクティビティが表示され、そのアクティビティは部分的に透過的であるか、または画面全体をカバーしません。一時停止したアクティビティは完全に生きています(アクティビティオブジェクトはメモリ内に保持され、すべての状態およびメンバ情報を保持し、ウィンドウマネージャに接続されたままです)が、非常にメモリ不足の状況ではシステムによって強制終了されます。

停止: 活性が完全に(アクティビティが「背景」になりました)別の活性によって覆い隠されます。停止したアクティビティもまだ生きています(アクティビティオブジェクトはメモリ内に保持され、すべての状態とメンバー情報を保持しますが、ウィンドウマネージャには関連付けられていません)。しかし、それはもはやユーザには見えず、メモリが他の場所で必要とされるときにシステムによって殺される可能性があります。

たとえば、アクティビティからカメラアクティビティを開始すると、カメラアクティビティはすべての画面をカバーし、カメラアクティビティにはアクティビティが表示されないため、現在のアクティビティは停止します。

Hereです。

カメラアクティビティのコールバックメソッドを処理する必要がないように、Intentを使用してCameraアクティビティを開始しています。システムは、あなたがそれを管理する必要がないコールバックメソッドを管理します。カメラアクティビティからアクティビティに入るアクティビティー結果を管理するだけで済みます。

EDIT

そしてまた、OBもちろん、あなたが直接、自動的にstate.Youだけに、この方法で実装を記述する必要が活動に応じて、このメソッドを呼び出しますActivity.Systemのいずれかのライフ・サイクル・メソッドをコールする必要はありません仕事をしなさい。

+0

これは良い答えです。私はあなたがライフサイクルの方法を直接呼び出す必要はないと付け加えます。 –

+0

@NickCampionうん、私は自分の答えを更新しました。 – Dharmendra

+0

甘いありがとう!それはたくさん説明します! – hellomello

関連する問題