gpt4 book ai didi

android - 我应该在创建通知之前调用 WakeLock 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:16 27 4
gpt4 key购买 nike

我正在向 Android 应用添加通知,目前只有模拟器可以测试。收到通知后,将调用 GCMBaseIntentService 子类 (GCMIntentService) 中的 onMessage() 方法。从这里我创建一个通知出现。如果我将模拟器置于待机状态,则看不到任何通知(我不知道是否会在设备上听到?)。那么我应该在创建通知之前调用 WakeLock 来唤醒设备吗?

谢谢

最佳答案

我不确定模拟器处于待机状态是否等同于锁定设备。如果是,您绝对应该调用 WakeLock,以便即使在设备锁定时也能显示通知。

这是示例代码:

@Override
protected void onMessage(Context context, Intent intent) {
// Extract the payload from the message
Bundle extras = intent.getExtras();
if (extras != null) {
String message = (String) extras.get("payload");
String title = (String) extras.get("title");

// add a notification to status bar
NotificationManager mManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Intent myIntent = new Intent(this,MyActivity.class);
Notification notification = new Notification(R.drawable.coupon_notification, title, System.currentTimeMillis());
notification.flags |= Notification.FLAG_AUTO_CANCEL;
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification);
contentView.setImageViewResource(R.id.image, R.drawable.gcm_notification);
contentView.setTextViewText(R.id.title, title);
contentView.setTextViewText(R.id.text, message);
notification.contentView = contentView;
notification.contentIntent = PendingIntent.getActivity(this.getBaseContext(), 0, myIntent, PendingIntent.FLAG_CANCEL_CURRENT);
mManager.notify(0, notification);
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
wl.acquire(15000);
}
}

当然,您需要将此权限添加到您的 list 中:

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

关于android - 我应该在创建通知之前调用 WakeLock 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16169175/

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