我正在使用cordova来构建我的Android应用程序。由于android杀死了服务,我通过通知绑定服务以避免服务终止。
以下是我如何使用通知
绑定服务的方法@Override
public int onStartCommand(Intent intent, int flags, int startId) {
context = this.getApplicationContext();
notifyService();
return START_NOT_STICKY;
}
private void notifyService() {
String package_name = this.getApplication().getPackageName();
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
Bitmap icon = BitmapFactory.decodeResource(getResources(),
this.getApplication().getResources().getIdentifier("icon", "drawable-hdpi", package_name));
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("Smart Home")
.setContentText("Smart Home running in background")
.setSmallIcon(this.getApplication().getResources().getIdentifier("icon", "drawable-hdpi", package_name))
.setContentIntent(pendingIntent)
.setOngoing(true)
.build();
startForeground(notificationId, notification);
}
这是输出
生成通知但通知标题不是我设置的。此外,当我点击此通知时,它会转移到应用信息活动。但我想转到我的主要活动。
有没有人遇到同样的问题?或者我的代码需要对cordova进行任何更改吗?
答案 0 :(得分:3)
当我点击此通知时,它正在转移到应用信息活动。但我想转到我的主要活动来实现这一目标 改变这一行
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
到这一行
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
希望它可以帮到你
答案 1 :(得分:3)
经过长时间的尝试后想出来。问题在于我的待定意图活动名称。下面的代码为我工作
String package_name = this.getApplication().getPackageName();
Intent notificationIntent = context.getPackageManager().getLaunchIntentForPackage(package_name);