2011-06-30 3 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イベントで使用したのと同じラインであります?ハンドラとうまく動作しますが、callResultコールの行をonOptionsItemSelectedメソッドのアクティビティに入れると、A)ダイヤラーが正しく表示されますが、B)私のアプリがメインアクティビティで再起動します。 私のアプリが正常に起動し、メインメニュー画面に移動した後、画面(アクティビティ)2を上に表示させるボタンをクリックして、画面3を上に表示させるボタンをクリックするとその画面上のボタンにフォーカスがある私はメニューを使用して、callResultメソッドを呼び出すオプションをクリックします。ダイヤラーは正しく表示されますが、そこから戻るボタンを押すと、私のアプリケーションのメインメニュー画面に戻ります。他の2つの画面が消えてしまい、メインメニューのアクティビティが再開されたと思われます。つまり、onCreateが呼び出されました。

ありがとうございました

+0

LogCatとは何ですか? – CaseyB

+0

それは少し言っている - それは私の活動onStopを呼び出し、私のメインメニューは作成されますが、例外はありません。 –

答えて

1

スレッドを追加しましたか?あなたがスレッドを追加した場合に問題が生じる可能性があります。 log-catにはどのようなエラーメッセージが出ますか?

+0

このバグを思い出させてくれてありがとう、私はそれを忘れてしまった。私は今日もう一度見て、何が起こっていたのかは、上記の方法が通常のbreakステートメントで終了していないcaseステートメントから呼び出されたので、次のアイテムが実行されているということです。だから、私はバグがなくなった途切れたブレークを追加した。少なくともその表現は、なぜアプリが本当に再起動するのかわからないが、少なくともそれはもうそれをしない。 –

+0

あなたの歓迎:) Calgacus –

関連する問題