活动未从android jobservice启动

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

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

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循环中尝试了下面的代码

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

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

n3schb8v

n3schb8v1#

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

相关问题