为什么课程会重新加载?

时间:2011-06-23 05:07:11

标签: android

我正在创建一个Android应用程序,它将SMS发送到另一个连接到电路的SIM卡。当接收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);

    }
}

我遇到的问题是,点击后图像出现在屏幕上后,它不会停留在屏幕上。而是重新加载类,图像重置为原始图像。如何在不更改回原始图像的情况下让图像保留在屏幕上。

1 个答案:

答案 0 :(得分:0)

最有可能的是,Android会杀死你的应用程序,它将释放一些内存。然后再次启动它,onCreate方法设置原始图像。

您需要做的是在调用onPause()onSaveInstanceState()时保存图像(和其他状态),并在onCreate()中从savedInstanceState提取此数据并应用它。详情请见http://developer.android.com/reference/android/app/Activity.html

请注意,这是完全正常的行为。