1

我正在使用作业调度程序,我的主要活动安排了一项服务,以便在下次有互联网连接时启动。因此,当第一次安装应用程序时,布局只有一个按钮,当您单击它时,它会安排网络相关服务,然后我希望 Activity 完成(如布局被销毁,以便用户获得他的屏幕在安装应用程序之前有)所以我有两个问题:

1)如果安排服务的活动被破坏,这是否意味着服务仍然被安排或丢失?

2)为什么finish()在 onClick 事件结束时(在安排服务之后)调用该方法没有完成活动,而是什么都没有发生,好像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());
        }
    });
}
4

1 回答 1

0

1)如果安排服务的活动被破坏,这是否意味着服务仍然被安排或丢失?

不,JobScheduler 不需要您的活动或应用程序保持活动状态即可工作。

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

仔细检查此行为。请记住,附加的暂停调试器将停止执行并阻止活动完成。这种方法的行为有点微妙

于 2017-03-07T20:41:11.563 回答