私はジョブ スケジューラを使用しています。私の主なアクティビティは、次回インターネットに接続したときにサービスを開始するようにスケジュールします。したがって、アプリが最初にインストールされたとき、レイアウトにはボタンが 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());
}
});
}