当我在后台服务中运行Thread.sleep时,Android中发生了什么

时间:2014-03-16 22:09:39

标签: android multithreading

如果我将IntentService定义如下,Android中会发生什么:

public class BackgroundService  extends IntentService {
    public BackgroundService() {
        super("BackgroundService");
    }

    @Override
    protected void onHandleIntent(Intent workIntent) {
        run();
    }
    private void run() {
        try {
            while(true)
            {
                //Some expensive Internet & SQL querying stuff
                Thread.sleep(1000 * 60 * 60);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

电池有多糟糕? 我的目标是相当基本的答案(如果我将睡眠设置为1天会发生什么?)

1 个答案:

答案 0 :(得分:1)

你问这么接近one。他还试图在循环中做一些工作并使Thread休眠。

根据提供的问题中的极客回答,我可以告诉您,这取决于//Some code行以及您将用什么替换它。您可以使用密集的代码替换它,使用互联网,GPS,闪光灯,相机并消耗电池肯定您可以用任何东西替换它并让Thread睡眠允许CPU将其替换为需要执行任何操作的任何其他Thread