gpt4 book ai didi

android - 时间事件监听器

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:39 25 4
gpt4 key购买 nike

我的问题:如何让我的应用程序在特定时间做某事?特别是在技术上没有运行的情况下(可能)。最佳实践?事件监听器?等等……

扩展:我是 Android 开发的新手。我想构建一个日程安排应用程序,它可以在预先安排的时间控制手机的某些功能。假设我在应用程序中安排在 3:00 从响铃更改为振动,现在是 2:00。那么,如何在 3:00 运行该更改时捕获系统时间?

我不确定更多信息是否有用。我只是在真正开始开发它之前尝试设计它,所以我正在寻找最佳实践以及如何在应用程序在后台运行或根本不运行时运行事件监听器(如果这是可能的)。

最佳答案

您可以像这样将 pendingIntentBroadCastReceiver 一起使用:

Calendar cal = Calendar.getInstance();
Intent activate = new Intent(context, Alarm.class);
AlarmManager alarms ;
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, activate, 0);
alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, 00);
alarms.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), alarmIntent);

然后是广播接收器:

public class Alarm extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
MediaPlayer mp = MediaPlayer.create(context, R.raw.ferry_sound);
mp.start();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
long[] s = { 0, 100, 10, 500, 10, 100, 0, 500, 10, 100, 10, 500 };
vibrator.vibrate(s, -1);
}
}

不要忘记在您的 AndroidManifest.xml 中包含这些权限:

....
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.VIBRATE"/>
....

和应用程序标签中的广播接收器:

<receiver  android:process=":remote" android:name="Alarm" />

关于android - 时间事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12502441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com