Activity 不是从 Android JobService 开始
Activity not starting from Android JobService
我正在尝试从 Android Jobservice 启动一个 activity,但它没有启动。
当我使用 addAction 方法从通知构建器启动 activity 时,我能够做到这一点,但同样我必须在没有任何用户同意的情况下这样做,但我失败了。
final Intent intent1 = Intent intent = new Intent(context, onActivity.class);
final PendingIntent pendingIntent = PendingIntent.getActivity(this, "1",
intent1 , PendingIntent.FLAG_ONE_SHOT);
if(acceptvalid) {
mBuilder.setContentTitle(getString(R.string.app_name))
.setContentText(getString(R.string.on))
.setSmallIcon(R.drawable.icon)
.setDefaults(Notification.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setVisibility(Notification.VISIBILITY_PUBLIC)
.setAutoCancel(true)
.addAction(R.drawable.ic_yes, getString(android.R.string.yes), installPendingIntent);
notificationManager.notify(1, mBuilder.build());
} else {
try{
installPendingIntent.send();
} catch (PendingIntent.CanceledException e) {
LOG.error("error starting activity.", e);
}
}
上面的 if 循环代码对我有效,而 else 无效。我什至在 else loop
中尝试了下面的代码
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent1 );
有人可以指出我的错误或提出任何建议。
提前致谢。
来自Android 10 个后台应用不允许直接启动活动。相反,他们需要向用户显示通知并获得用户同意。一个例外情况是如果您的应用已授予 SYSTEM_ALERT_WINDOW 权限。
见
https://developer.android.com/guide/components/activities/background-starts
我正在尝试从 Android Jobservice 启动一个 activity,但它没有启动。 当我使用 addAction 方法从通知构建器启动 activity 时,我能够做到这一点,但同样我必须在没有任何用户同意的情况下这样做,但我失败了。
final Intent intent1 = Intent intent = new Intent(context, onActivity.class);
final PendingIntent pendingIntent = PendingIntent.getActivity(this, "1",
intent1 , PendingIntent.FLAG_ONE_SHOT);
if(acceptvalid) {
mBuilder.setContentTitle(getString(R.string.app_name))
.setContentText(getString(R.string.on))
.setSmallIcon(R.drawable.icon)
.setDefaults(Notification.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setVisibility(Notification.VISIBILITY_PUBLIC)
.setAutoCancel(true)
.addAction(R.drawable.ic_yes, getString(android.R.string.yes), installPendingIntent);
notificationManager.notify(1, mBuilder.build());
} else {
try{
installPendingIntent.send();
} catch (PendingIntent.CanceledException e) {
LOG.error("error starting activity.", e);
}
}
上面的 if 循环代码对我有效,而 else 无效。我什至在 else loop
中尝试了下面的代码intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent1 );
有人可以指出我的错误或提出任何建议。
提前致谢。
来自Android 10 个后台应用不允许直接启动活动。相反,他们需要向用户显示通知并获得用户同意。一个例外情况是如果您的应用已授予 SYSTEM_ALERT_WINDOW 权限。
见
https://developer.android.com/guide/components/activities/background-starts