2013-10-13 70 views
0

我嘗試在我的Android應用程序中實現通話記錄,該應用程序讀取系統通話記錄並在我的應用程序中顯示。有一個按鈕,使某人來電我的應用程序的代碼:當我從其他活動回來時,我的活動(Android)似乎不執行onPause()/ onResume

startActivity(new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+dataList.get(arg2).get("number")))); 

當我按下按鈕,我的應用程序將失去畫面的焦點,它會跳轉到調用頁面。當通話結束時,我希望我的應用程序中的通話記錄可以刷新,我的意思是,剛纔的通話應該添加到我的列表中。因此,我在我的活動的onResume()中添加了刷新功能。

但古怪的橫空出世名單時,通話結束沒刷新(屏幕會自動變回我以前的我的應用程序的頁面,說列表)。

所以在這裏我的問題是,不應該是onResume()函數被調用時調用完成?同時,onPause()也沒有被調用,當跳轉到調用頁面。我很確定他們不是因爲我在onResume()onPause()的開頭添加了system.out.println(),所以我什麼也沒看見。

任何人都可以幫我解決這個問題嗎?感謝您的閱讀和幫助。

+0

你確定你正在檢查的logcat的用於打印信息的正確部分?如果您不確定,請參閱此答案(http://stackoverflow.com/questions/2220547/why-doesnt-system-out-println-work-in-android)。大多數時候我更喜歡斷點來確切地查看我的代碼被調用的位置/時間。 – codeMagic

+0

嘿,夥計感謝您的幫助,實際上我正在尋找正確的logcat。邁克幫助我。無論如何,謝謝你的回答! –

回答

1

確保正確覆蓋onPause()onResume()方法。 (無參數,void返回類型)

您還需要在每種情況下調用到super方法。 那就是:

@Override 
public void onPause() 
{ 
    super.onPause(); 
    // your code here 
} 

@Override 
public void onResume() 
{ 
    super.onResume(); 
    // your code here 
} 
+0

感謝邁克這麼粗心的一個錯誤。但是請幫助我解決這個問題:我剛剛發現onResume()會在您首次啓動應用程序時被調用。那是對的嗎?謝謝! –

+0

@YuchunCui,這是正確的。看看[Activity Lifecycle](http://developer.android.com/reference/android/app/Activity.html)。 'onResume()'在'onCreate()'第一次被創建時被直接調用。 – codeMagic

相關問題