2011-06-21 7 views
0

私はあるアプリケーションから他のアプリケーションに移行するときにログキャッチログを記録しますか?そのメッセージはどのように見えますか?私は一度に2つのアプリケーションをアンドロイドで実行しているとします

+0

私は別のアプリケーションに移行すると「実行中」のアプリケーションが「一時停止」し、他のアプリケーションは「再開」します。この一時停止イベントと再開イベントはロガーによって記録されますか? – Poojan

+0

一時停止および再開メソッドでログを記録する場合は、はい。そうでなければ、いいえ。 –

+0

@AmandeepGrewal:Androidの 'Application'クラスに' onPause() 'や' onResume() 'メソッドがありません。 – Squonk

答えて

1

私はアプリケーションログがlogcatに書き込まれると信じています。フォアグラウンドにあるかどうかはまったく違って見えません。

しかし、アプリケーションはフォアグラウンドではないことを知っているので、フォアグラウンドの場合と同じメッセージをlogcatに出力しない可能性があります。

編集:それはフォアグラウンドでいたときにアプリケーションが知っているどのように対応して

グーグル(http://developer.android.com/reference/android/app/Activity.html)から

public class MyActivity extends Activity { 

    private boolean isInForeground; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     isInForeground = true; 
    } 

    protected void onStart(); 

    protected void onRestart(); 

    protected void onResume() { 
     isInForeground = true; 
    } 

    protected void onPause(); 

    protected void onStop() { 
     isInForeground = false; 
    } 

    protected void onDestroy(); 
} 

活性の全体の寿命は(のonCreateの最初の呼び出しの間に起こりますBundle)を呼び出して、onDestroy()への最後の呼び出しを1回行います。アクティビティはonCreate()で "グローバル"状態のすべての設定を行い、残りのすべてのリソースをonDestroy()で解放します。たとえば、ネットワークからデータをダウンロードするスレッドがバックグラウンドで実行されている場合、onCreate()でそのスレッドを作成してから、onDestroy()でスレッドを停止することがあります。

アクティビティの可視的な有効期間は、onStart()の呼び出しとonStop()への対応する呼び出しの間に発生します。この間、ユーザは画面上のアクティビティを見ることができますが、フォアグラウンドには存在せず、ユーザと対話することもできます。これらの2つの方法の間で、ユーザーにアクティビティを表示するのに必要なリソースを維持できます。たとえば、OnStart()にBroadcastReceiverを登録して、UIに影響を与える変更を監視し、ユーザーが表示している内容が表示されなくなったときにonStop()で登録を解除できます。 onStart()メソッドとonStop()メソッドは、アクティビティが表示されてユーザーに表示されなくなるため、複数回呼び出すことができます。

アクティビティのフォアグラウンド・ライフタイムは、onPause()を呼び出すまで、onResume()の呼び出しの間に発生します。この間、アクティビティは他のすべてのアクティビティの前にあり、ユーザと対話します。たとえば、デバイスがスリープ状態になったとき、アクティビティ結果が配信されたとき、新しいインテントが配信されたときなど、アクティビティは頻繁に再開と一時停止の状態になることがあるため、これらのメソッドのコードはかなり軽量でなければなりません。

+0

アプリケーションがバックグラウンドになるたびにログメッセージを送信し、同様にフォアグラウンドでログメッセージを送信する必要があることをお勧めしますか? – Poojan

+0

"...アプリケーションはフォアグラウンドにいないときを知っています" - どのようにこれを知っていますか? – Squonk

1

logcatに何かが表示されるという保証はありません。ログメッセージをコードに入れて、それを実現させる必要があります。

+0

あなたは、アプリケーションがバックグラウンドになるたびにログメッセージを送信し、同様にフォアグラウンドでログメッセージを送信することを提案していますか? – Poojan

+0

@Poojanはい、発生したときにログを記録したい場合はあります。 – Haphazard

関連する問題