0

我有一个应用程序可以处理某些静音功能,但是当手机处于睡眠状态且未连接到计算机时,我无法使其工作。屏幕打开时一切正常,但手机睡眠时它停止工作。知道我做错了什么吗?我在这里检查了 100 篇其他帖子,但我无法确定我的问题。

我的警报管理器,使意图:

Intent intent2 = new Intent(this, Silence.class);
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(this, 1000 + id, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am2 = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am2.setRepeating(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7, pendingIntent2);

广播接收器:

public class MainSilenceCatcherVibrate extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent1) {
    WakeLocker.acquire(context);
    System.out.println("test");
    WakeLocker.release();
    }
}

清单用法:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<receiver android:name=".Silence"></receiver>
<activity android:name=".ContactActivity"></activity>
4

1 回答 1

0

我只是无法确定我的问题

您的事件将立即发生一次,然后一周内不会再次发生 ( AlarmManager.INTERVAL_DAY * 7,)。也许你没有等一个星期。

注意这里不需要WakeLocker——只要你所有的工作都在onReceive(),系统会WakeLock为你保留一个。如果您的工作需要花费超过一毫秒左右的时间,将不想onReceive()在.WakefulBroadcastReceiverWakefulIntentServiceWakeLock

于 2013-10-12T11:56:18.927 回答