我有IntentService,我在哪里创建通知。我希望在创建通知后打开屏幕。既然PowerManager.WakeLock screenOn = ((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.FULL_WAKE_LOCK, "example");
贬值了,我怎么能做对呢?
我的问题和你的问题一样,但下面的代码对我来说是正确的。。
在包中创建一个类WakeLocal.java
import android.content.Context;
import android.os.PowerManager;
public abstract class WakeLocker {
private static PowerManager.WakeLock wakeLock;
public static void acquire(Context context) {
if (wakeLock != null) wakeLock.release();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.ON_AFTER_RELEASE, "WakeLock");
wakeLock.acquire();
}
public static void release() {
if (wakeLock != null) wakeLock.release(); wakeLock = null;
}
}
并调用活动中private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver()
中的代码
然后调用释放锁定方法
// Releasing wake lock
WakeLocker.release();
别忘了在你的menifest.xml 中添加权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
这个代码信用完全属于http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/