【发布时间】:2018-08-09 04:34:18
【问题描述】:
我正在尝试在 Android 上使用 JobIntentService,但无法访问 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());
}
}
【问题讨论】:
-
Discoverable 类在做什么?我认为
discoverable = new Discoverable(settings, networks)应该在onHandleWork如果做任何长期工作
标签: java android jobintentservice