2011-06-30 55 views
0

爲什麼這個代碼崩潰我的應用程序onte仿真器和設備上 - 至少在調試模式如何調用startActivity(新意向

public void callResult(SRButton srb){ 
    SearchResultsElement e = srb.getItem(); 
    if (e.getTelephone() != null && e.getTelephone().length()>=7){ 
     final String telno = e.getTelephone(); 
     if(mHandler==null) 
      mHandler = new Handler(); 
      mHandler.post(new Runnable(){ 
       public void run(){ 
        startActivity(new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+telno))); 
       } 
      }); 

    } 
} 

startActivity(new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+telno)));在某些按鈕onclick事件中使用的同一行?處理程序和工作正常,但是當我將該行放入activity的onOptionsItemSelected方法中的callResult調用時,它會導致A)撥號程序正常顯示,但然後B)我的應用程序要在主要活動中重新啓動。 因此,讓我們說我的應用程序正常啓動,我到我的主菜單屏幕,然後我點擊一個按鈕,導致屏幕(活動)2出現在頂部,然後我點擊一個按鈕,導致屏幕3出現在上面,然後當該屏幕上的按鈕具有焦點我使用菜單,然後單擊那裏調用我的callResult方法的選項撥號程序顯示正確,但當我從那裏點擊返回按鈕時,我返回的是我的應用程序主菜單屏幕。我的其他兩個屏幕消失了,我懷疑我的主菜單活動已重新啓動,即onCreate被召回。

謝謝

+0

LogCat說什麼? – CaseyB

+0

它說的很少 - 除了它將我的活動稱爲onStop,然後創建我的主菜單,但沒有例外。 –

回答

1

您是否添加了任何線程?如果你添加了線程可能會出現問題。什麼錯誤信息進來登錄貓?

+0

感謝您提醒我這個錯誤,我忘記了它。我今天又看了一遍,發現發生了什麼事情是上面的方法是從case語句中調用的,而這個case語句並沒有用通常的break語句來完成,所以下一個項目正在運行等等。所以我只是添加了缺少的突破錯誤消失...或至少它的表達,不知道爲什麼應用程序重新啓動,但至少它不再這樣做。 –

+0

你的歡迎:)卡爾戈克斯 –

相關問題