从JobIntentService

时间:2019-11-24 11:39:23

标签: java android android-service jobintentservice

我想在onHandleWork内部的for循环中调用一个非静态方法。我该如何实现?

@Override
protected void onHandleWork(@NonNull Intent intent) {
    Log.d(TAG, "onHandleWork");

    String input = intent.getStringExtra("inputExtra");


    for (int i = 0; i < 10; i++) {
        Log.d(TAG, input + " - " + i);

        new MainActivity.method();

        if (isStopped()) return;

        SystemClock.sleep(1000);
    }
}

1 个答案:

答案 0 :(得分:0)

您应该广播一条消息,表明该活动正在监听。

要实现此目的,请在活动上使用广播接收器,并通过具有context.sendBroadcast(intent)的作业服务将其发送出去

您可以通过以编程方式或在AndroidManifest.xml文件中声明一个广播接收器来使您的活动监听。请注意,如果以编程方式声明它,则活动仅在打开时才接收广播。如果您使用清单方法,则在未打开活动并发送广播的情况下,将开始活动

接收广播: https://developer.android.com/guide/components/broadcasts.html#manifest-declared-receivers

发送广播: https://developer.android.com/guide/components/broadcasts.html#sending-broadcasts

文档: https://developer.android.com/reference/android/content/BroadcastReceiver