当“屏幕开启”时,“启动秒表” “屏幕关闭”时“暂停秒表”

时间:2015-07-20 12:31:19

标签: java android database timer stopwatch

我想在其中构建app;

    电话屏幕打开时
  • “秒表”将处于活动状态
  • “秒表”将在手机关闭时暂停屏幕

  • 每次“秒表”暂停,数据将被记录[在记录中一天]

  • 应用程序启动时每24小时,存储所有记录

例如:

  • 在屏幕上:00:00:00
  • 关闭屏幕:3:10:00 [数据记录]
  • 在屏幕上:3:10:00
  • 关闭屏幕:8:40:00 [数据记录]

考虑这是一天(24小时)的记录,并记录当天的数据库。

我现在面临的问题;

  • 我不知道如何在屏幕打开时启动“秒表”
  • 我不知道如何在屏幕关闭时暂停“秒表”

需要帮助..谢谢

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式轻松实现:

onResume()你刚开始秒表..

onPause()中,您应该停止秒表并在数据库或首选位置记录数据。

答案 1 :(得分:0)

您需要执行以下操作:

创建BroadcastReceiver

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);

基本上你已经准备好做你的事了。