2011-06-23 7 views
0

私は電気回路に接続された別のSIMにSMSを送信するアンドロイドアプリを作成しています。受信SIMが特定のテキストのメッセージを受信すると、電気回路が閉じられ、モータが動作を開始します。ここではプログラムクラスがリロードされるのはなぜですか?

public class SendSMSActivity extends Activity implements View.OnClickListener{ 
    ImageView image1; 
    Button turnon; 
    /** Called when the activity is first created. */ 
    @Override 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     turnon = (Button) findViewById(R.id.button1); 
     image1 = (ImageView) findViewById(R.id.image1); 
     turnon.setOnClickListener(this); 
    } 
    public void onClick(View v) 
      {     
       String phoneNo = "XXXXXXXXXX"; 
       String message = "Turn On";     
       if (phoneNo.length()>0 && message.length()>0)     
        { 
        sendSMS(phoneNo, message); 
        image1.setImageResource(R.drawable.greenon); 
        } 
       else{ 
        Toast.makeText(getBaseContext(), 
         "Phone Number and Message not configured correctly.", 
         Toast.LENGTH_SHORT).show(); 
        image1.setImageResource(R.drawable.redon); 
      } 
     } 
    protected void sendSMS(String phoneNo, String message) { 
     // TODO Auto-generated method stub 
     PendingIntent pi = PendingIntent.getActivity(this, 0, 
       new Intent(this, SendSMSActivity.class), 0);     
      SmsManager sms = SmsManager.getDefault(); 
      sms.sendTextMessage(phoneNo, null, message, pi, null); 

    } 
} 

がある私が持っている問題は、画像をクリックした後、画面上に来た後、それが画面上に滞在していないということです。代わりにクラスがリロードされ、イメージは元のイメージにリセットされます。どのようにして元の画像に戻すことなく、画像をスクリーン上に残すことができますか?

答えて

0

ほとんどの場合、Androidはメモリを解放するためにアプリケーションを強制終了します。それから、もう一度それを持ち上げて、onCreateメソッドが元の画像を設定します。あなたがする必要がどのような

onPause()またはonSaveInstanceState()が呼び出されたときの画像(および他の状態)を保存することで、onCreate()savedInstanceStateからこのデータを取得し、それを適用します。詳細はこちらをご覧くださいhttp://developer.android.com/reference/android/app/Activity.html

これは完全に正常な動作です。

関連する問題