我有一个应用程序可以处理某些静音功能,但是当手机处于休眠状态并且未连接到计算机时,我无法使其正常工作。屏幕打开时一切正常,但当手机睡眠时它会停止工作。 知道我做错了什么吗?我在这里检查了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>
答案 0 :(得分:0)
我无法确定我的问题
您的活动将立即发生一次,然后不会再发生一周(AlarmManager.INTERVAL_DAY * 7,
)。也许你没等一个星期。
请注意,您在此处不需要WakeLocker
- 只要您的所有工作都在onReceive()
,系统就会为您保留WakeLock
。如果您的工作需要花费超过一毫秒左右的时间,那么您不希望在onReceive()
中执行此操作,但在这种情况下,我会recommend WakefulBroadcastReceiver
或my WakefulIntentService
覆盖您自己{ {1}}解决方案。