0

我想在 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);
    }
}
4

1 回答 1

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

于 2019-11-24T11:51:32.650 回答