如何使用 TimePicker 在特定时间关闭应用程序
How to close the app at specific hour using TimePicker
我正在开发一个应用程序,我想为用户提供使用时间选择器在选定时间自动关闭应用程序的选项。我知道我必须使用闹钟管理器,但我不知道如何与时间选择器结合使用并关闭应用程序
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contadorpro);
timePicker = (TimePicker) findViewById(R.id.timePicker);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Contador Activado", Toast.LENGTH_LONG).show();
timePicker.clearFocus();
final Calendar _calendar = Calendar.getInstance();
final int hour = timePicker.getCurrentHour();
final int minute = timePicker.getCurrentMinute();
Thread _thread = new Thread() {
@Override
public void run() {
try {
Calendar _calendar = Calendar.getInstance();
int _currentHour = _calendar.get(Calendar.HOUR);
int _currentMinute = _calendar.get(Calendar.MINUTE);
if(_currentHour == hour && _currentMinute == minute){
System.exit(0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
_thread.start();
}
});
}
}
您可以使用
获取时间
int hour = timePicker.getCurrentHour();
int minute = timePicker.getCurrentMinute();
然后你必须创建一个线程来检查当前时间和来自TimePicker
的时间。
届时,您必须使用 System.exit(0);
或 finish()
您的 activity
关闭应用程序
重新编辑:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contadorpro);
timePicker = (TimePicker) findViewById(R.id.timePicker);
button = (Button)findViewById(R.id.button);
final Thread _thread = new Thread() {
@Override
public void run() {
try {
boolean _stopThread = true;
while (_stopThread) {
Calendar _calendar = Calendar.getInstance();
int _currentHour = _calendar.get(Calendar.HOUR);
int _currentMinute = _calendar.get(Calendar.MINUTE);
int hour = timePicker.getCurrentHour();
int minute = timePicker.getCurrentMinute();
if (_currentHour == hour && _currentMinute == minute) {
_stopThread = false;
System.exit(0);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// I edited here
if(!_thread.isAlive()) {
_thread.start();
Toast.makeText(getApplicationContext(), "Contador Activado", Toast.LENGTH_LONG).show();
}
}
});
}
我正在开发一个应用程序,我想为用户提供使用时间选择器在选定时间自动关闭应用程序的选项。我知道我必须使用闹钟管理器,但我不知道如何与时间选择器结合使用并关闭应用程序
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contadorpro);
timePicker = (TimePicker) findViewById(R.id.timePicker);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Contador Activado", Toast.LENGTH_LONG).show();
timePicker.clearFocus();
final Calendar _calendar = Calendar.getInstance();
final int hour = timePicker.getCurrentHour();
final int minute = timePicker.getCurrentMinute();
Thread _thread = new Thread() {
@Override
public void run() {
try {
Calendar _calendar = Calendar.getInstance();
int _currentHour = _calendar.get(Calendar.HOUR);
int _currentMinute = _calendar.get(Calendar.MINUTE);
if(_currentHour == hour && _currentMinute == minute){
System.exit(0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
_thread.start();
}
});
}
}
您可以使用
获取时间int hour = timePicker.getCurrentHour();
int minute = timePicker.getCurrentMinute();
然后你必须创建一个线程来检查当前时间和来自TimePicker
的时间。
届时,您必须使用 System.exit(0);
或 finish()
您的 activity
重新编辑:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contadorpro);
timePicker = (TimePicker) findViewById(R.id.timePicker);
button = (Button)findViewById(R.id.button);
final Thread _thread = new Thread() {
@Override
public void run() {
try {
boolean _stopThread = true;
while (_stopThread) {
Calendar _calendar = Calendar.getInstance();
int _currentHour = _calendar.get(Calendar.HOUR);
int _currentMinute = _calendar.get(Calendar.MINUTE);
int hour = timePicker.getCurrentHour();
int minute = timePicker.getCurrentMinute();
if (_currentHour == hour && _currentMinute == minute) {
_stopThread = false;
System.exit(0);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// I edited here
if(!_thread.isAlive()) {
_thread.start();
Toast.makeText(getApplicationContext(), "Contador Activado", Toast.LENGTH_LONG).show();
}
}
});
}