私は基本的にX個のRSSフィードを解析するアプリケーション用のサービスを持っています。ほとんどのフィードはかなり小さいですが、サイズによっては約1MBになるものもあります。私は私のサービスでAsyncTaskでそれらを解析しています。解析は、ユーザーの接続とフィードの数に応じてかなり時間がかかることがありますが、最大で1〜2分以内と言います。このサービスでWakeLockを使用することをお勧めしますか?ここでWakeLockが必要なのかどうかわからない
これはこれまでのコードです。これは、サービスを設定したりしないように最善の方法であるかどうかわからない:あなたの活動が実行されている場合はサービスがバックグラウンドで実行
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();
}
}