我正在开发一个需要在一段时间后获得一些用户输入的应用程序。因此,我使用了AlarmManager和BroadCastReceiver。警报响起时,我正在发送广播。
private void startAlarm(Calendar cc) {
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, MyBroadCastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
}
在我的BroadcastReciver类的onRecive()中,我正在创建一个通知并打开我的应用程序(如果它已关闭)。
@Override
public void onReceive(Context context, Intent intent) {
//show notification
PackageManager pm = context.getPackageManager();
Intent launchIntent = pm.getLaunchIntentForPackage("xx.com.myapp");
context.startActivity(launchIntent);
}
它工作正常,但是如果屏幕被锁定,那么我看不到活动。是否可以在锁定屏幕上显示活动并获得一些用户输入?设备随附的时钟应用程序之类的东西;在这里我们可以设置闹钟,并且即使在锁定屏幕上也可以在闹钟响起时停止或暂停闹钟。