2011-06-21 43 views
0

Logcat日誌時,我從一個應用程序轉移到其他?這條消息是什麼樣子的?假設我一次運行兩個應用程序android

+0

我認爲當我轉移到另一個應用程序並且其他應用程序將「恢復」時,將要運行的應用程序將「暫停」。記錄器是否記錄了暫停事件和恢復事件? – Poojan

+0

如果你在暫停和恢復方法中有日誌調用,是的。否則,不。 –

+0

@AdedeepGrewal:Android'Application'類沒有'onPause()'或'onResume()'方法。 – Squonk

回答

1

我相信任何應用程序日誌都會寫入logcat。它看起來沒有什麼不同,如果它在前臺。

但是,請記住,應用程序知道它們何時不在前臺,所以它們可能不會將相同的消息輸出到logcat,就像它們位於前臺時一樣。

編輯:

針對應用程序如何知道什麼時候它是在前臺。

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(); 
} 

從谷歌(http://developer.android.com/reference/android/app/Activity.html)

一個活動的整個壽命到的onCreate第一呼叫(之間發生Bundle)到onDestroy()的單個最終調用。一個活動將在onCreate()中完成「全局」狀態的所有設置,並釋放onDestroy()中的所有剩餘資源。例如,如果它有一個在後臺運行的線程從網絡下載數據,它可能會在onCreate()中創建該線程,然後停止onDestroy()中的線程。

活動的可見生命週期發生在對onStart()的調用之間,直到對onStop()的相應調用。在此期間,用戶可以在屏幕上看到活動,但它可能不在前臺並與用戶進行交互。在這兩種方法之間,您可以維護向用戶顯示活動所需的資源。例如,您可以在onStart()中註冊BroadcastReceiver以監視影響UI的更改,並在用戶不再看到您顯示的內容時,在onStop()中取消註冊。可以多次調用onStart()和onStop()方法,因爲活動對用戶可見並隱藏。

活動的前臺生命期發生在對onResume()的調用之間,直到對onPause()的相應調用。在此期間,活動在所有其他活動之前,並與用戶進行交互。一個活動可以頻繁地在恢復狀態和暫停狀態之間進行 - 例如,當設備進入睡眠狀態,活動結果被傳遞時,當新的意圖被傳遞時 - 所以這些方法中的代碼應該相當輕量級。

+0

您是否建議每當應用程序進入後臺時,應該發送一條日誌消息,並在前臺出現時同樣發送一條日誌消息? – Poojan

+0

「......應用程序知道它們何時不在前臺」 - 他們如何知道這一點? – Squonk

1

無法保證任何內容都會顯示在logcat中。您必須將日誌消息放入代碼才能實現。

+0

你是否建議每當應用程序進入後臺時,它都應該發送一條日誌消息,並在前臺出現時同樣發送一條日誌消息? – Poojan

+0

@Poojan是的,如果你想記錄它發生的時間。 – Haphazard

相關問題