gpt4 book ai didi

android - 为什么我的通知在从异步后台服务回调创建时没有显示?

转载 作者:太空狗 更新时间:2023-10-29 14:43:35 25 4
gpt4 key购买 nike

我创建了一个服务,而不是一个 intentservice,因为我需要做一些异步的事情(位置 + 服务器调用),最后创建一个通知。

我首先有一个创建通知的广播接收器,仅此而已。那很好用。但是,在服务中我启动了一个位置管理器,然后在回调中启动了一个异步,并在那个回调中尝试创建一个通知,它没有显示在抽屉中!

这让我发疯。正如您在代码中看到的那样,我尝试了 toast ,并且有效...非常感谢您的帮助。

我服务中的代码(为简洁起见略微简化)一切正常,调用服务器,记录方法等,但抽屉中没有出现通知(仅当我直接从 onStartCommand 调用清理时):

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand");
//.... doing various other stuff

handleAsyncStuff(session);
return START_STICKY;
}

....in my callback from final async server rest call:


private void cleanup(String header, String message){
try{
Log.d(TAG, "cleanup;header;" + header + ";message;" + message);

int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), message, duration);
toast.show();

Intent notificationIntent = new Intent(getApplicationContext(), MainTabActivity.class);
notificationIntent.putExtra(PreferencesHandler.INTENT_HEADER_PARAM, header); notificationIntent.putExtra(PreferencesHandler.INTENT_MESSAGE_PARAM, message);

final NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
builder.setContentTitle(header)
.setAutoCancel(true)
.setWhen(System.currentTimeMillis())
.setContentText(message)
.setSmallIcon(R.drawable.notification)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL);

PendingIntent pendingIntent = PendingIntent.getActivity(GeofenceBackgroundService.this.getApplicationContext(),
NOTIFICATION_ID,
notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);

Notification notification = builder.build();

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(NOTIFICATION_ID, notification);

}finally{
//stopSelf(); Comment out did not make notification appear!
}
}

最佳答案

试试像 manager.notify(new Random().nextInt(), notification);你必须每次传递不同的 Notification Id 否则它会被旧的取代

关于android - 为什么我的通知在从异步后台服务回调创建时没有显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43734327/

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