gpt4 book ai didi

android - 与 Android 服务对话的状态通知

转载 作者:行者123 更新时间:2023-11-30 03:03:20 24 4
gpt4 key购买 nike

我有一个 Android Service 可以创建通知和相应的状态图标。当用户对通知使用react时,我希望将 Intent 传递到我的 Service。这一切看起来都非常简单。

我可以创建通知,图标会出现在状态栏中,当我拉下窗帘时,我会看到我的通知。当我点击通知时,没有任何反应。当我什么也没说时,我的意思是 Intent 没有传递到我的服务。

我感觉到的是我在 Notification、Intent 或 PendingIntent 中设置了错误的内容,但我正在努力找出哪些是不正确的。

这是代码(全部在服务类中):

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand(): intent=" + intent + ", startId=" + startId);
Log.d(TAG, LKServiceMessages.dumpExtras(intent));

String command = LKServiceMessages.getMessageKind(intent);


if (command.equals(K_STATUS_NOTIFICATION)) {
cancelNotification(0);
command = null;
} else {
displayStatusNotification();
}

if (command == null) {
Log.d(TAG, "Non-library command received - ignoring...");
} else {
Log.d(TAG, "Handling action - partially processing this action");
}

return START_REDELIVER_INTENT;
}

private void displayStatusNotification() {
Intent intent = new Intent(K_STATUS_NOTIFICATION,null,this,LKService.class);

PendingIntent pIntent = PendingIntent.getService(LKService.this, 0, intent, 0);

mNotification = new NotificationCompat.Builder(this)
.setContentTitle("Bacon")
.setContentText("Bacon is good for you. Tap to dismiss.")
.setSmallIcon(R.drawable.ic_status)

.addAction(R.drawable.ic_status, "Notification getAction()", pIntent)

.setAutoCancel(true)
.setDeleteIntent(pIntent)

.build();

NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, mLeafNotification);
}

private void cancelNotification(int notificationId) {
if (Context.NOTIFICATION_SERVICE != null) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) getApplicationContext().getSystemService(ns);
nMgr.cancel(notificationId);
}
}

我做错了什么,但我不知道是什么。我最初的想法是 PendingIntent 是错误的,但这里有很多我不完全理解的 Activity 部分。

有什么想法吗?

最佳答案

构建通知时,您正在调用

.setDeleteIntent(pIntent)

这设置了当用户删除通知时将使用的 Intent。听起来你想打电话

.setContentIntent(pIntent)

相反。这设置了用户点击通知时将使用的 Intent

关于android - 与 Android 服务对话的状态通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22228663/

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