通过工作调度程序安排服务后完成活动



我正在使用作业调度程序,而我的主要活动计划是在下次有Internet连接时开始的。因此,当首次安装应用程序时,布局只有一个按钮,当您单击它时,它将安排网络依赖的服务,然后我希望完成该活动(例如在布局中被销毁,以便用户获取屏幕,在安装应用程序之前),所以我有2个问题:

1)如果安排服务被销毁的活动是否意味着该服务仍在计划中还是丢失了?

2)为什么在ONCLICK事件结束时(安排服务后)调用方法finish()未完成活动,而什么也没有发生,就好像finish()甚至不存在吗?

这是ongreate代码

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());
        }
    });
}

1)如果安排服务被销毁的活动会这样做 意味着该服务仍在计划中还是丢失了?

不,JobsCheduler不需要您的活动或应用程序才能保持活力以工作。

2)为什么调用方法完成()...未完成活动 ...?

仔细检查此行为。请记住,随附的,暂停的调试器将停止执行并防止活动完成。该方法的行为有些细微。

最新更新