【发布时间】:2019-02-28 22:55:30
【问题描述】:
我想在按钮上放一个计时器之类的东西,也就是说,我有一个按钮,按下它后变为不活动状态,比如说2小时,两个小时后它可以再次点击,但是这样计时器就会一直计时即使应用程序已关闭或最小化。 我知道如何使按钮处于非活动状态有助于理解如何制作计时器。
我写了代码,当我按下按钮时,她会记下日期并停用按钮,然后她会得到新的日期并找出差异,当它是 10 秒时,她会激活再次按钮,但代码不起作用,请解释原因?
public class MainActivity extends AppCompatActivity {
Button button;
TextView textView;
private String TAG;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
textView = findViewById(R.id.textView);
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
button.setEnabled(false);
SharedPreferences.Editor editor = preferences.edit();
long startTime = System.currentTimeMillis();
editor.putLong("Time", startTime);
editor.apply();
Log.d(TAG, "Time " + startTime);
}
});
long startMillis = preferences.getLong("Time", 0);
long now = System.currentTimeMillis();
Log.d(TAG, "Now " + now);
long difference = now - startMillis;
if (difference == 10000) {
button.setEnabled(true);
}
Log.i(TAG, "Time111: " + difference);
}
@Override
protected void onStart() {
super.onStart();
}
}
【问题讨论】:
-
请检查此question 可能会有所帮助
标签: android timer android-service onclicklistener android-button