ビューページャーに複数のフラグメントが含まれており、ビューページャーで定義されたボタンがクリックされたときに各フラグメントに何かをさせたいと考えています。これらの各フラグメントにサービスを送信して、各フラグメントに何かを実行させるにはどうすればよいでしょうか? ここに私がこれまでに持っているものがありますが、機能していないようです。Android でバックグラウンド タスクを扱ったことがないので、それらの使用方法に関する知識はほとんどありません。
ビューページャーのコード
public boolean onOptionsItemSelected(android.view.MenuItem item) {
switch (item.getItemId()) {
case R.id.apply:
Intent in = new Intent(this, Friday.class);
in.putExtra("isClicked", "clicked");
startService(in);
Intent inte = new Intent(this, Thursday.class);
inte.putExtra("isClicked", "clicked");
startService(inte);
Intent inten = new Intent(this, Wednesday.class);
inten.putExtra("isClicked", "clicked");
startService(inten);
Intent intent = new Intent(this, Tuesday.class);
intent.putExtra("isClicked", "clicked");
startService(intent);
Intent intents = new Intent(this, Monday.class);
intents.putExtra("isClicked", "clicked");
startService(intents);
}
return true;
}
フラグメント内のコード
public int onStartCommand(Intent intent, int flags, int startId) {
SharedPreferences sharedPref = getActivity().getSharedPreferences("schedule",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("g_Friday", editGBand.getText().toString() );
editor.putString("b_Friday", editCBand.getText().toString() );
editor.putString("adv1_Friday", editADV1Band.getText().toString() );
editor.putString("adv2_Friday", editADV2Band.getText().toString() );
editor.putString("c_Friday", editCBand.getText().toString() );
editor.putString("f_Friday", editFBand.getText().toString() );
editor.apply();
Intent i = new Intent(getActivity(), MainActivity.class);
startActivity(i);
return Service.START_NOT_STICKY;
}