我正在使用作业调度程序,我的主要活动安排服务在下次有互联网连接时启动。因此,当首次安装应用程序时,布局只有一个按钮,当您单击它时,它会调度网络相关服务,然后我希望活动完成(如在布局中要销毁,以便用户获得屏幕他在应用程序安装之前已经有了)所以我有两个问题:
1)如果安排调度服务的活动是否意味着该服务仍在安排或丢失?
2)为什么在onClick事件结束时调用方法finish()
(在安排服务之后)没有完成活动,而是没有任何事情发生,好像finish()
甚至不存在?
这是OnCreate代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mJobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
JobInfo.Builder builder = new JobInfo.Builder(1,
new ComponentName(getPackageName(),
JobSchedulerService.class.getName()));
builder.setPersisted(true);
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
mJobScheduler.schedule(builder.build());
}
});
}
答案 0 :(得分:0)
1)如果调度服务的活动被销毁,那么这样做 意味着该服务仍在安排或丢失?
不,JobScheduler不需要你的活动或应用来保持活力才能工作。
2)为什么调用方法finish()...没有完成活动 ...?
仔细检查此行为。请记住,附加的暂停调试器将停止执行并阻止活动完成。 The behavior of this method is a bit nuanced