建立了一个服务,里面有一线程,然后锁屏后就不作用了。如下,请高手出手!
package org.omagic;
import org.omagic.service.PhoneService;
....
public class TService extends Service {
public Handler han = new Handler()
{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
public IBinder onBind(Intent intent)
{
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onCreate() {
super.onCreate();
t = new Thread(new Runnable() {
public void run() {
while (true) {
//do ........这边一些执行的代码
//执行一次停一段时间
Thread.sleep(30000);
}
}
});
t.start();
}
}
上面这个服务,在软件启动并登录进去之后,通过这样调用启动:
Intent i2 = new Intent();
i2.setClass(c, TService.class);
TService.tims = 2000;
TService.key = "111";
c.stopService(i2);
c.startService(i2);
然后正常运行都OK的。但如果屏幕锁住之后,就不运行了。
现在求解:
怎么样才能让其在锁屏之后继续运行
刚接触JAVA没几天,可能问题很可笑,但较急,请高手帮助!谢谢了!!!
我所有分就只有这一些了,请高手帮助!
------解决思路----------------------
用WakeLock
WakeLock mWakeLock;
服务启动时acquire,退出时release
//申请设备电源锁
private void acquireWakeLock()
{
if (null == mWakeLock)
{
PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
------解决思路----------------------
PowerManager.ON_AFTER_RELEASE, TAG);
if (null != mWakeLock)
{
mWakeLock.acquire();
}
}
}
//释放设备电源锁
private void releaseWakeLock()
{
if (null != mWakeLock)
{
mWakeLock.release();
mWakeLock = null;
}
}