从JobIntentService调用活动方法

问题描述 投票:0回答:1

我想在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);
    }
}
java android android-service jobintentservice
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

© www.soinside.com 2019 - 2024. All rights reserved.