Как позвонить в startActivity (новый Intent - PullRequest
0 голосов
/ 30 июня 2011

Почему этот код вызывает сбой моего эмулятора приложения и на устройстве - по крайней мере, в режиме отладки?

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 кнопки и там работает нормально, но когда я помещаю строку в вызов callResult в методе onOptionsItemSelected действия, это вызывает A), что номеронабиратель отображается правильно но затем B) мое приложение, чтобы перезапустить на основной деятельности. Допустим, мое приложение запускается нормально, и я попадаю на экран главного меню, затем я нажимаю кнопку, заставляющую экран (Activity) 2 появляться сверху, затем я нажимаю кнопку, которая заставляет экран 3 появляться сверху, а затем, когда Кнопка на этом экране находится в фокусе. Я использую меню и выбираю там параметр, который вызывает мой метод callResult, при этом номеронабиратель отображается правильно, но затем, когда я нажимаю кнопку возврата оттуда, я возвращаюсь к экрану главного меню своих приложений. Два других моих экрана пропали, и я подозреваю, что мое главное меню было перезапущено, то есть вызвано onCreate.

Спасибо

1 Ответ

1 голос
/ 14 сентября 2011

Вы добавили какую-нибудь тему?Там может быть проблема, если вы добавили поток.Какое сообщение об ошибке появляется в log-cat?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...