2011-12-26 21 views
1

以下は、ボタンをクリックすると呼び出されるonclickメソッドです。しかし、このコードは私のアプリケーションを止めるものではありません。それはメッセージを送信し、閉じてから再び再起動します。私はアクティビティのライフサイクルモデルを読みましたが、これは単一のアクティビティアプリケーションです。私もstackoverflowを研究しました。post()コールの後にreturn文を記述している投稿の多くは、これもやっていますが結果はありません。returnステートメントまたは終了呼び出しを使用してもアクティビティが終了しない

どこが間違っていますか?

public void onClick(View v) 
    {  
     String text = "Demo Message"; 

     String number = <set via a particular code>; 


     if(number.equals("")) 
     { 
      Toast.makeText(this, "Please Enter or Select a Number", Toast.LENGTH_SHORT).show(); 
     } 
     else 
     { 
      sms = SmsManager.getDefault(); 
      PendingIntent sentIntent = PendingIntent.getActivity(this, 0, 
       new Intent(this, Main.class), 0); 

      sms.sendTextMessage(number, null, text, sentIntent, null); 
      Toast.makeText(this, "Message Sent to : " + number, Toast.LENGTH_SHORT).show(); 

      // Stop the Activity... 
      finish();   
      return; 
     } 
    } 

答えて

3

すべては非常に簡単です。あなたのPendingIntentはSMSを送信した後にメインアクティビティを呼び出します。そこで、プロセスは以下の通りです:

  1. アプリケーションは、その活動が
  2. 終了した後、SMS
  3. を送信しますが、PendingIntentは再び、このアクティビティを実行します
あなたは、単にに入力することにより、これをテストすることができます

例えばLog.d("MyApp", "onCreate()");のようにonCreate()メソッドのログタスクを実行すると、smsが送信された後に呼び出されることがわかります。

+0

Thanx @Yury ...はい私は盲目的にドキュメントからそれをコピーしていましたが、深く掘り下げたときの意味を理解していました。もう一度やっぱり:) –

関連する問題