android 程序运行不了,当应用程序在后台运行或不运行时,Android – 推送通知工作不正确...
我使用Firebase Cloud Messaging發送推送通知.
這是我的FirebaseMessageService:
public class FireBaseMessageService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.e("TAG", "From: " + remoteMessage.getFrom());
Log.e("TAG", "Notification Message Body: " + remoteMessage.getData().get("CardName")+" : "+remoteMessage.getData().get("CardCode"));
sendNotification(remoteMessage.getNotification().getBody());
}
private void sendNotification(String messageBody) {
Intent intent = new Intent(this, StartActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher_final)
.setContentTitle("Notification")
.setContentText(messageBody)
.setTicker("Test")
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_SOUND)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
}
和FirebaseInstanceServer:
public class FirebaseInstanceService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.e("TAG", "Refreshed token: " + refreshedToken);
// TODO: Implement this method to send any registration to your app's servers.
sendRegistrationToServer(refreshedToken);
}
private void sendRegistrationToServer(String token) {
// Add custom implementation, as needed.
Log.e("TAG", "Refreshed token2: " + token);
}
}
哪個在AndroidManifest中聲明:
android:name=".util.notifications.FireBaseMessageService">
android:name=".util.notifications.FirebaseInstanceService">
所以問題是,當應用程序運行的代碼顯示得很好,通知有默認聲音,但是當應用程序在前臺或沒有運行通知沒有任何聲音和代碼未顯示在狀態欄.
為什么會發生這種情況,我該如何解決?
總結
以上是生活随笔為你收集整理的android 程序运行不了,当应用程序在后台运行或不运行时,Android – 推送通知工作不正确...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android网络请求回调管理,Andr
- 下一篇: 备用金每次都上征信吗