活动未从android jobservice启动

eqzww0vc  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(495)

我正在尝试从android jobservice启动一个活动,但它没有启动。当我用addaction方法从notification builder启动一个活动时,我可以这样做,但是同样的,我必须在没有任何用户同意的情况下这样做,我失败了。

  1. final Intent intent1 = Intent intent = new Intent(context, onActivity.class);
  2. final PendingIntent pendingIntent = PendingIntent.getActivity(this, "1",
  3. intent1 , PendingIntent.FLAG_ONE_SHOT);
  4. if(acceptvalid) {
  5. mBuilder.setContentTitle(getString(R.string.app_name))
  6. .setContentText(getString(R.string.on))
  7. .setSmallIcon(R.drawable.icon)
  8. .setDefaults(Notification.DEFAULT_ALL)
  9. .setPriority(NotificationCompat.PRIORITY_HIGH)
  10. .setVisibility(Notification.VISIBILITY_PUBLIC)
  11. .setAutoCancel(true)
  12. .addAction(R.drawable.ic_yes, getString(android.R.string.yes), installPendingIntent);
  13. notificationManager.notify(1, mBuilder.build());
  14. } else {
  15. try{
  16. installPendingIntent.send();
  17. } catch (PendingIntent.CanceledException e) {
  18. LOG.error("error starting activity.", e);
  19. }
  20. }

上面的if循环代码对我有效,而else不起作用。我甚至在else循环中尝试了下面的代码

  1. intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  2. this.startActivity(intent1 );

有人可以指出我的错误或提出任何建议。
先谢谢你。

n3schb8v

n3schb8v1#

android 10的后台应用不允许直接启动活动。相反,他们需要向用户显示通知并获得用户同意。例外情况是,如果您的应用程序已被授予“系统警报”窗口权限。
看见
https://developer.android.com/guide/components/activities/background-starts

相关问题