Cordova - 通知后台 运行 服务
Cordova - Notify background running service
我正在使用 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);
}
这是输出
通知已生成,但通知标题与我设置的不一样。此外,当我单击此通知时,它会移动到应用程序信息 activity。但我想转到我的主 activity.
有人遇到过同样的问题吗?或者我的代码需要对 cordova 进行任何更改?
当我点击此通知时,它正在移动到应用信息 activity。但是我想转到我的主要 activity 来实现这个
更改此行
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
到这一行
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
希望对你有帮助
经过长时间的尝试,终于弄明白了。问题出在我的未决意图 activity 名称上。下面的代码对我有用
String package_name = this.getApplication().getPackageName();
Intent notificationIntent = context.getPackageManager().getLaunchIntentForPackage(package_name);
我正在使用 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);
}
这是输出
通知已生成,但通知标题与我设置的不一样。此外,当我单击此通知时,它会移动到应用程序信息 activity。但我想转到我的主 activity.
有人遇到过同样的问题吗?或者我的代码需要对 cordova 进行任何更改?
当我点击此通知时,它正在移动到应用信息 activity。但是我想转到我的主要 activity 来实现这个 更改此行
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
到这一行
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
希望对你有帮助
经过长时间的尝试,终于弄明白了。问题出在我的未决意图 activity 名称上。下面的代码对我有用
String package_name = this.getApplication().getPackageName();
Intent notificationIntent = context.getPackageManager().getLaunchIntentForPackage(package_name);