如何检测用户早上开始使用手机的时间



我的应用程序可以在一天中的任何时间首次打开。 但是当它打开时,我希望能够知道用户何时在早上第一次开始使用他们的手机。

如果要在应用程序运行时侦听,请使用 BroadcastReceiver。如 Android 参考站点中所述,您无法在清单文件中声明这一点。 public class ScreenReceiver 扩展 BroadcastReceiver {

// THANKS JASON
public static boolean wasScreenOn = true;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// DO WHATEVER YOU NEED TO DO HERE
wasScreenOn = false;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
// AND DO WHATEVER YOU NEED TO DO HERE
wasScreenOn = true;
}
}
}

如果你想一直监听用户的操作,你需要一个如下服务;

public static class UpdateService extends Service {
@Override
public void onCreate() {
super.onCreate();
// REGISTER RECEIVER THAT HANDLES SCREEN ON AND SCREEN OFF LOGIC
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, filter);
}
@Override
public void onStart(Intent intent, int startId) {
boolean screenOn = intent.getBooleanExtra("screen_state", false);
if (!screenOn) {
// YOUR CODE
} else {
// YOUR CODE
}
}
}

代码来自 2。

最新更新