1

私はジョブ スケジューラを使用しています。私の主なアクティビティは、次回インターネットに接続したときにサービスを開始するようにスケジュールします。したがって、アプリが最初にインストールされたとき、レイアウトにはボタンが 1 つしかなく、それをクリックすると、ネットワークに依存するサービスがスケジュールされ、アクティビティが終了する必要があります (レイアウトが破棄されるように、ユーザーは画面を取得します)アプリがインストールされる前に持っていた)ので、それについて2つの質問があります:

1) サービスをスケジュールするアクティビティが破棄された場合、それはサービスがまだスケジュールされていることを意味しますか、それとも失われますか?

finish()2) 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