如何让应用程序不重置自己?

时间:2013-10-26 17:07:18

标签: java android eclipse counter reset

我制作的计数器应用程序从100000倒数。每次我将设备旋转90°或停止它,它再次从100000开始。如何让我的应用程序停止重置?

代码:

public class SecondActivity extends Activity {

    int counter = 1000001;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }

    public void onClick(View v){}

    public void button1 (View v){
        counter--;
        final Button button2 = (Button) findViewById(R.id.button2);
        button2.setText("" + counter); 
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.second, menu);
        return true;
    }

}

3 个答案:

答案 0 :(得分:2)

Android会在方向更改时销毁并重建当前活动。您必须通过实施onSaveInstanceState()的{​​{1}}和onRestoreInstanceState()方法来保存活动状态。

有关详细信息,请参阅developer.android.com上的this article

答案 1 :(得分:0)

了解这一事情每次旋转手机时,即更改方向,您的活动实例都会被销毁,新的活动实例会被创建,即您的活动会重新创建,然后是活动生命周期。 您无法控制此行为,但您可以将最后一个计数器保存在 SharedPreferences 中,就像将要调用的最后一个活动方法是onDestroy()一样。在此方法中保存计数器并在onCreate()方法中获取已保存时间的值并仅从那里启动计数器。

答案 2 :(得分:0)

计数器的值不会以这种方式持续存在,您需要使用某种方法将此值保存在SharedPreferences中或至少保存在某处。