當我的應用程序正在運行(在前臺和後臺),我可以收到通知,並使用Android的NotificationManager
顯示通知給用戶。但是,在將應用程序從最近的應用程序中移開後,當應用程序收到通知時,我收到消息Unfortunately, MyApp has stopped working
。GCM通知應用程序崩潰後,我關閉應用程序
我知道應用程序應該能夠在從最近一次刷卡後收到通知,因爲我已經設置了百度通知,並且能夠在刷開應用程序後接收它們。但是使用GCM,它只會導致應用程序崩潰。這是有問題的代碼:
[BroadcastReceiver(Name = "com.my.pkg.MyGcmReceiver", Exported = true, Permission = "com.google.android.c2dm.permission.SEND")]
[IntentFilter(new string[] { "com.google.android.c2dm.intent.RECEIVE" }, Categories = new string[] { "com.my.pkg" })]
public class MyGcmReceiver : GcmReceiver
{
public override void OnReceive(Context context, Intent intent)
{
base.OnReceive(context, intent);
System.Diagnostics.Debug.WriteLine("MyGcmReceiver - OnReceive called &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
CreateNotification();
}
private void CreateNotification()
{
NotificationCompat.Builder builder = new NotificationCompat.Builder(Xamarin.Forms.Forms.Context);
builder.SetAutoCancel(true);
builder.SetDefaults(NotificationCompat.DefaultAll);
builder.SetSmallIcon(Resource.Drawable.icon);
builder.SetContentTitle("HI");
builder.SetContentText("MSG FROM GCM");
builder.SetPriority((int)NotificationPriority.Max);
NotificationManager manager = (NotificationManager)Xamarin.Forms.Forms.Context.GetSystemService(Context.NotificationService);
manager.Notify(0, builder.Build());
}
}
通過在OnReceive
方法註釋掉線CreateNotification();
,應用程序不會崩潰,當然那不會產生,並顯示該通知。
您使用Google雲消息傳遞而不是Firebase可以傳遞消息的任何原因? –
@MadhavShenoy我寫的是一樣的。 –
:d隨着FCM你不需要編寫代碼來處理通知 –