2011-06-30 29 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

你的欢迎:)卡尔戈克斯 –

相关问题