Почему этот код вызывает сбой моего эмулятора приложения и на устройстве - по крайней мере, в режиме отладки?
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.
Спасибо