我可以通过这种方式检测屏幕何时关闭:
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
Toast.makeText(MainActivity.this, "Screen off", Toast.LENGTH_SHORT).show();
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Toast.makeText(MainActivity.this, "Screen on", Toast.LENGTH_SHORT).show();
}
}
}, intentFilter);
我需要做同样的事情,但是Toast
必须在几秒钟后出现,我可以通过timePicker
. 所以每次屏幕关闭时,如果我设置 10 秒,10 秒后我会敬酒。我该怎么做?我需要服务吗?手动我可以做这样的事情:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// here the code
}
}, 30 * 1000);
但如果我可以用时间选择器设置秒数会更好。谢谢