"start stopwatch" 当 "screen on" & "pause stopwatch" 当 "screen off"
"start stopwatch" when "screen on" & "pause stopwatch" when "screen off"
我想在其中构建应用;
- "stopwatch" 将在 phone 屏幕打开时激活
"stopwatch" 将在 phone 关闭时暂停屏幕
每次"stopwatch"暂停,都会记录数据[在记录中一天]
- 应用程序每 24 小时启动一次,存储所有记录
例如:
- 在屏幕上:00:00:00
- 屏幕外:3:10:00[数据记录]
- 在屏幕上:3:10:00
- 屏幕外:8:40:00[数据记录]
认为这是一天(24 小时)的记录,并且记录了当天的数据库。
我现在面临的问题;
- 我不知道如何在屏幕打开时启动"stopwatch"
- 我不知道如何在屏幕关闭时暂停"stopwatch"
需要帮助.. 谢谢
您可以通过以下方式轻松实现:
在onResume()
你刚刚开始计时..
在 onPause()
中,您应该停止秒表并在数据库中或您首选的位置记录数据。
您需要执行以下操作:
创建广播接收器
public class ScreenStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_TURNED_OFF.equals(action)) {
// Screen is off
} else if (Intent.ACTION_USER_PRESENT.equals(action)) {
// Screen is on
}
}
}
通过代码或在清单中注册
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
context.registerReceiver(mScreenReceiver, filter, null, null);
基本上你已经准备好做你的事了。
我想在其中构建应用;
- "stopwatch" 将在 phone 屏幕打开时激活
"stopwatch" 将在 phone 关闭时暂停屏幕
每次"stopwatch"暂停,都会记录数据[在记录中一天]
- 应用程序每 24 小时启动一次,存储所有记录
例如:
- 在屏幕上:00:00:00
- 屏幕外:3:10:00[数据记录]
- 在屏幕上:3:10:00
- 屏幕外:8:40:00[数据记录]
认为这是一天(24 小时)的记录,并且记录了当天的数据库。
我现在面临的问题;
- 我不知道如何在屏幕打开时启动"stopwatch"
- 我不知道如何在屏幕关闭时暂停"stopwatch"
需要帮助.. 谢谢
您可以通过以下方式轻松实现:
在onResume()
你刚刚开始计时..
在 onPause()
中,您应该停止秒表并在数据库中或您首选的位置记录数据。
您需要执行以下操作:
创建广播接收器
public class ScreenStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_TURNED_OFF.equals(action)) {
// Screen is off
} else if (Intent.ACTION_USER_PRESENT.equals(action)) {
// Screen is on
}
}
}
通过代码或在清单中注册
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
context.registerReceiver(mScreenReceiver, filter, null, null);
基本上你已经准备好做你的事了。