保存计时器值/时间?

时间:2015-01-09 15:10:40

标签: android save chronometer

如何保存计时器值?因此,当我,例如,按后退按钮或当我"杀死"应用程序,我不希望计时器重置为00:00。

代码是您按住并释放的按钮。当我按住按钮时,计时器启动,计时器停止,直到我松开按钮。我希望这个时间永远不会重置,所以我可以看到按下按钮时我总共花了多少时间。有人请帮帮我! :)

这是我的代码:

public class MainActivity extends ActionBarActivity {

    Button button1;
     Chronometer chromo;
     protected long time;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button1=(Button)findViewById(R.id.button1);
        chromo=(Chronometer)findViewById(R.id.chromo);
    }

    button1.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
            if(event.getAction() == MotionEvent.ACTION_DOWN){

                chromo.setBase(SystemClock.elapsedRealtime()+time);
                chromo.start();
            }else if( event.getAction() == MotionEvent.ACTION_UP){



                time =chromo.getBase()-SystemClock.elapsedRealtime();
                chromo.stop();
            }

            return true;
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您应该使用 sharedPreferences 在应用中保存临时数据。搜索它:有很多关于它的教程。

答案 1 :(得分:0)

你最好的可能是使用SharedPreferences。这一点的主要目的是让你的应用程序的某些设置持续超过当前实例(这大致是你的问题)。

// 0 - for private mode`
 SharedPreferences pref = getApplicationContext().getSharedPreferences("NameForMyPrefs", 0); 

 Editor editor = pref.edit();
 editor.putLong("time", time);

 editor.putString("otherRelevantData", "Kittens");
 editor.commit();

编辑:

我改变了在代码中初始化它的方式,使其更加清晰。

EDIT2:

由@ Tr4X发布的链接(引导here)@ 2Dee有一个非常可靠的答案你应该考虑。

快乐的编码!如果您有任何问题,请发表评论。