0

ビューページャーに複数のフラグメントが含まれており、ビューページャーで定義されたボタンがクリックされたときに各フラグメントに何かをさせたいと考えています。これらの各フラグメントにサービスを送信して、各フラグメントに何かを実行させるにはどうすればよいでしょうか? ここに私がこれまでに持っているものがありますが、機能していないようです。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;

}
4

1 に答える 1

1

この場合、使用は IntentService を使用する必要があります。IntentService は startService の最初の呼び出しで開始され、サービスを開始するためのさらなる呼び出しで、インテントは onHandleIntent() でサービスの実行中のインスタンスに順次渡されます。例: http://sohailaziz05.blogspot.com/2012/05/intentservice-providing-data-back-to.html

于 2014-06-05T18:07:26.820 に答える