Java 终止应用程序后计数器重新启动
我制作了一个应用程序,当我按住按钮时启动计数器,松开按钮后停止计数,然后再次触摸后重新启动。。(该应用程序是用来查看我可以使用多长时间,只需触摸一个按钮。) 无论如何,我已经做了一个方法来保存计数器的数据,所以当我关闭应用程序或按下“后退”按钮时,计数器的数据会保存。但只要我再次点击按钮,它就会重新启动!我找不到办法解决这个问题。我认为这与:Java 终止应用程序后计数器重新启动,java,android,save,counter,chronometer,Java,Android,Save,Counter,Chronometer,我制作了一个应用程序,当我按住按钮时启动计数器,松开按钮后停止计数,然后再次触摸后重新启动。。(该应用程序是用来查看我可以使用多长时间,只需触摸一个按钮。) 无论如何,我已经做了一个方法来保存计数器的数据,所以当我关闭应用程序或按下“后退”按钮时,计数器的数据会保存。但只要我再次点击按钮,它就会重新启动!我找不到办法解决这个问题。我认为这与: chromo.setBase(SystemClock.elapsedRealtime()+时间) (在“下一步行动”中找到)顺便说一句,我用了计时器作为计
chromo.setBase(SystemClock.elapsedRealtime()+时间)
(在“下一步行动”中找到)顺便说一句,我用了计时器作为计数器。请帮帮我
这是我的密码:
public class MainActivity extends ActionBarActivity {
Button button1;
Chronometer chromo;
protected long time = 0;
private SharedPreferences prefs;
@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);
prefs = getSharedPreferences("prefs", Context.MODE_PRIVATE);
long savedValue = prefs.getLong("my_chrono", 0);
if(savedValue == 0)
chromo.setBase(SystemClock.elapsedRealtime());
else
chromo.setBase(SystemClock.elapsedRealtime() + savedValue);
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();
prefs.edit().putLong("my_chrono", time).apply();
}
return true;
}
});
}}
你想添加
time=saveValue
s而旁注,如果(savedValue==0)
没有用,你只能使用SystemClock.elapsedRealtime()+savedValue
MAN谢谢!!我成功了!!谢谢,真的@njzk2