Я хочу поставить на кнопку что-то вроде таймера, то есть у меня есть кнопка, после нажатия она становится неактивной, скажем, в течение 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();
}
}