2012-03-26 52 views
0

目前我正在使用IntentService来循环Browser.apk中的网址。我正在运行它,直到电池耗尽。这是我的脏代码。 =)如何在Browser.apk中循环url时保持屏幕开启?

@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(); 
} 

我试图使用唤醒锁,但并非所有设备都保持清醒状态。它与摩托罗拉Xoom合作,但不在Thinkpad平板电脑中使用。

你知道的比使用激活锁定以外的其他选项。或者我应该如何正确实施唤醒锁?

我可以告诉大家,我应该保持在屏幕上同时加载的URL浏览器?通过使用意图或其他手段。

回答

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); 
     } 
+0

感谢普拉迪普!这是我做的。 mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE,TAG); mWakeLock.acquire(); – quiel 2012-03-26 04:51:15

+0

我只有一个担心,我总是获得()唤醒锁而不释放它。除了会消耗我的电池以外,其影响是什么? – quiel 2012-03-26 04:56:06

+0

它对设备电池消耗的唯一影响... – 2012-03-26 06:03:40

相关问题