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