使用活动屏幕运行线程

时间:2013-02-25 18:26:53

标签: android android-asynctask android-activity

我有以下代码:

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以时间间隔生成值。在执行此线程期间,我的设备上的屏幕处于活动状态,但我希望此应用程序运行较长时间,因此如果屏幕在整个执行期间未处于活动状态会更好 - 这将耗电很多。你知道这个问题的解决方案吗?提前谢谢。

1 个答案:

答案 0 :(得分:3)

使用服务而不是带有AsyncTask的Activity:

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