Android-如何在不打开应用程序的情况下调用课程

我想创建一个无需打开实际应用即可在BOOT_COMPLETED上发送通知的Android应用。 我从网上使用了一些代码示例,并在接收方收到BOOT_COMPLETED时对其进行了修改,以调用NotifyOnBoot类。这确实在某种程度上起作用。它发送一个推送通知。但是,它还会打开NotifyOnBoot接口,这是不应该发生的。 (NotifyOnBoot类不应作为可访问的接口)我只想发送推送通知,而无需打开应用程序。我该如何实现?顺便说一句,我真的是Java新手。过去我已经做过一些基本的Python,但这是我第一次使用Android Studio。对不起,意大利面条代码:(

这实际上是发送通知的内容:

NotifyOnBoot.java

public class NotifyOnBoot extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        createNotification();
    }

    public void createNotification() {

        Notification notification = new Notification();

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "default");
        builder.
            //Builder commands


        // Launch App
        PendingIntent mPendingIntent = PendingIntent.getActivity(NotifyOnBoot.this, 0,
                new Intent(getApplicationContext(), MainActivity.class),
                PendingIntent.FLAG_UPDATE_CURRENT
        );

        // Launch App on Notification Click
        builder.setContentIntent(mPendingIntent);

        // Show Notification
        NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            notificationManager.createNotificationChannel(new NotificationChannel("default", "Startup Notification", NotificationManager.IMPORTANCE_MAX));
        }

        notificationManager.notify(1, builder.build());
    }
}

这是接收BOOT_COMPLETED信号并调用类的部分。

StartActivityOnBootReceiver.java

public class StartActivityOnBootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(Objects.equals(intent.getAction(), "android.intent.action.BOOT_COMPLETED")) {
            Intent it = new Intent(context, NotifyOnBoot.class);
            it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(it);
        }
    }
}
评论