我正在尝试JobIntentService
在 Android 上使用,但无法访问onHandleWork
方法内的类字段。我的discoverable
字段在方法中似乎总是为空onHandleWork
。
这是我的 JobIntentService 类:
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v4.app.JobIntentService;
import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.Logger;
import io.hypertrack.smart_scheduler.Job;
import io.hypertrack.smart_scheduler.SmartScheduler;
public class NetworkCheckService extends JobIntentService {
private static final int jobId = 1;
private Settings settings;
private NetworkInformation networkInfo;
private Networks networks;
private Discoverable discoverable;
{
Logger.addLogAdapter(new AndroidLogAdapter());
}
// Needs an empty constructor for some reason.
public NetworkCheckService() {
}
public NetworkCheckService(Context context) {
this.settings = new Settings(context);
this.networkInfo = new NetworkInformation(context);
this.networks = new Networks(context, networkInfo);
this.discoverable = new Discoverable(settings, networks);
}
private Discoverable getDiscoverable() {
return discoverable;
}
static void enqueueWork(Context context, Intent work) {
enqueueWork(context, NetworkCheckService.class, jobId, work);
}
public void onHandleWork(@NonNull Intent intent) {
Logger.d(discoverable); // discoverable is null
Discoverable foo = getDiscoverable(); // foo is null
}
}
我的主要活动课:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NetworkCheckService networkCheckService = new NetworkCheckService(this);
networkCheckService.enqueueWork(this, new Intent());
}
}