如何调用startActivity(new Intent

时间:2011-06-30 13:40:41

标签: android menu android-intent

为什么此代码会使我的应用程序在模拟器和设备上崩溃 - 至少在调试模式下?

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事件处理程序中使用的行相同,并且在那里工作正常,但是当我在活动的onOptionsItemSelected方法中调用callResult时,它会导致A)拨号器出现正常,但B)我的应用程序重新启动主要活动。 所以,让我说我的应用程序正常启动,然后我进入我的主菜单屏幕,然后单击一个按钮,导致屏幕(活动)2出现在顶部,然后我单击一个按钮,导致屏幕3出现在顶部,然后当该屏幕上的按钮具有焦点我使用菜单并单击一个选项,其中调用我的callResult方法拨号器正确显示但是当我从那里按下后退按钮我返回的是我的应用程序主菜单屏幕。我的其他两个屏幕都消失了,我怀疑我的主菜单活动已经重启,即onCreate召回。

由于

1 个答案:

答案 0 :(得分:1)

你有没有添加任何线程?如果你有添加线程可能会有问题。 log-cat中出现了什么错误消息?