Android 不确定我是否需要一个唤醒锁
我的应用程序有一个服务,基本上可以解析X个RSS提要。大多数提要都相当小,但有些大小可能在1MB左右。我正在我的服务中的异步任务中解析它们。解析可能相当耗时,这取决于用户的连接和提要的数量,但我认为最多不超过一两分钟。在服务中使用WakeLock是个好主意吗 到目前为止,这是我的代码。不确定这是否是设置服务的最佳方式:Android 不确定我是否需要一个唤醒锁,android,android-service,wakelock,Android,Android Service,Wakelock,我的应用程序有一个服务,基本上可以解析X个RSS提要。大多数提要都相当小,但有些大小可能在1MB左右。我正在我的服务中的异步任务中解析它们。解析可能相当耗时,这取决于用户的连接和提要的数量,但我认为最多不超过一两分钟。在服务中使用WakeLock是个好主意吗 到目前为止,这是我的代码。不确定这是否是设置服务的最佳方式: public class MainService extends Service { private WakeLock mWakeLock; @Ove
public class MainService extends Service
{
private WakeLock mWakeLock;
@Override
public void onCreate()
{
handleIntent();
}
@Override
public int onStartCommand(final Intent intent, final int flags, final int startId)
{
return START_STICKY;
}
@Override
public void onStart(final Intent intent, final int startId) {
handleIntent();
}
protected void handleIntent()
{
// obtain the wake lock
final PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
mWakeLock.acquire();
if (!((ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE)).getBackgroundDataSetting())
{
stopSelf();
return;
}
new AsyncParsingTask().execute();
}
@Override
public void onDestroy()
{
super.onDestroy();
mWakeLock.release();
}
}
服务在后台运行,在后台没有获取wakelock的意义 但是,您可以做的是检查您的活动是否正在运行,并在该情况下获取唤醒锁,然后在活动完成时释放 在服务中使用WakeLock是个好主意吗 是的,如果让设备进入睡眠状态可能会给您带来问题。不过,我建议您使用my,因为在处理
WakeLock
对象时有许多棘手的情况。您也不需要处理自己的AsyncTask
或stopSelf()
,因为这些将由IntentService
为您处理(从wakefultintentservice
继承)