0

AsyncTask の完了後に開始されるサービスがあります。ただし、エミュレーターで実行中のアプリを管理しようとすると、そこにはありません。UIスレッドのコードは次のとおりです。

public void onClick(View v) {
    // TODO Auto-generated method stub
    if (v.getId() == R.id.button1) {
        if (rBoot.isChecked()) {
            registerReceiver(new BootReceiver(), filter);
        }

        if (cb.isChecked())
            sent.putInt("progress", -10);
        else
            sent.putInt("progress", sb.getProgress());

        prog.show();
        new ProgressUpdate().execute(0);

    }

    if (v.getId() == R.id.button2) {
        stopService(i);
    }
}

および AsyncTask:

private class ProgressUpdate extends AsyncTask<Integer, String, String> {

    @Override
    protected String doInBackground(Integer... params) {
        // TODO Auto-generated method stub

        for (int i = 0; i <= 100; i++) {
            try {
                Thread.sleep((long) 31.4);
                progress = i;
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            if (progress == 100) {
                prog.dismiss();
            }
        }

        return "done";
    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        startService(new Intent(Activity.this, Service.class)
                .putExtra("bun", sent));
    }
}

ダイアログが表示されて閉じられますが、サービスは開始されません。

4

0 に答える 0