0

現在、Browser.apk で URL をループするために IntentService を使用しています。電池がなくなるまで動かしています。これが私の汚いコードです。=)

@Override
protected void onHandleIntent(Intent intent) {
    int size = intent.getStringArrayExtra("addresses").length;
    int counter = sp.getInt("counter", 0);
    String address = intent.getStringArrayExtra("addresses")[counter];
    Intent i = new Intent(Intent.ACTION_VIEW);

    i.setData(Uri.parse(address));
    i.setFlags(Intent.FLAG_FROM_BACKGROUND | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);

    counter++;
    if(counter == size) {
        counter = 0;
    }
    spe.putInt("counter", counter);
    spe.commit();
}

ウェイクロックを使用しようとしましたが、すべてのデバイスが起動しているわけではありません。Motorola Xoom では動作しますが、Thinkpad タブレット スレートでは動作しません。

ウェイクロックを使用する以外のオプションを知っていますか。または、ウェイクロックを適切に実装するにはどうすればよいですか?

URL を読み込んでいる間、画面をオンにしておく必要があることをブラウザに伝えることはできますか? 意図またはその他の手段を使用して。

4

2 に答える 2

1

デバイス画面を開くには、デバイスがスリープ モードの場合、次のコードを使用します。

       //acquireLock(context);
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
         boolean isScreenOn = pm.isScreenOn();
         Log.e("screen on.................................", ""+isScreenOn);
         if(isScreenOn==false)
         {
              WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE,"MyLock");
              wl.acquire(10000);
              WakeLock wl_cpu = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyCpuLock");
              wl_cpu.acquire(10000);
         }
于 2012-03-26T04:04:44.387 に答える
0

ここでの最適なソリューション: https://stackoverflow.com/a/2134602/1316372

@Override
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
于 2012-05-30T21:40:26.783 に答える