0

次のコードがあります。

public class MainActivity extends Activity {

Button btnStart;
MyTask objMyTask;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnStart = (Button) findViewById(R.id.btnstart);
    btnStart.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            objMyTask = new MyTask();
            objMyTask.execute();
        }
    });
}

class MyTask extends AsyncTask<Void, String, Integer> {  
@Override
    protected Integer doInBackground(Void... params) {...}

    @Override
    protected void onProgressUpdate(String... values) {...}

    @Override
    protected void onPostExecute(Integer result) {...}
}}

MyTask時間間隔で値を生成します。このスレッドの実行中、デバイスの画面はアクティブですが、このアプリをより長く実行したいので、実行中ずっと画面がアクティブでない方がよいでしょう。電力を消費します。この問題の解決策を知っていますか? 前もって感謝します。

4

1 に答える 1

3

AsyncTask でアクティビティの代わりにサービスを使用します。

http://developer.android.com/guide/components/services.html

于 2013-02-25T18:30:20.417 に答える