すべての電話で正常に動作する Android アプリを作成しました。しかし、私のアルカテル電話では、電話がディープスリープモードになり、データネットワークに障害が発生したため、アプリはデータネットワークを取得せず、サーバーからデータを同期しません。
私のデザイン ...
SystemBootReceiver--> (DataSyncService)Service--> (MyBroadcastReceiver)BroadcastReceiver--> (MyDataService)Service.
したがって、ここでシステムの起動時に、 (繰り返し)DataSyncServiceを設定したところから開始し、 . を呼び出した後、 を呼び出して停止します。AlarmManagerMyBroadcastReceverBroadcastReceverDataSyncServicestopself()
これで、MyBroadcastReceverが を呼び出しますMyDataService。
前述のように、電話がディープスリープモードになるのを防ぐWakeLocksに出くわしました。だから私はそれをMyDataService onCreate()メソッド 内に実装しました
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
mWakeLock.acquire();
そしてrelease()、サービス停止前のウェイクロック。
Androidマニフェストにも許可を設定しました。
しかし、これはうまくいきませんでした。簡単なチェックのために、市場のWAKE LOCKアプリを使用しました。
しかし、これでも電話は起きませんでした。再び私はWAKE MY ANDROID(ストアから削除されたアプリ)アプリを市場から見つけてインストールしました..そしてここで魔法が起こりました.
それは電話を生かし続けました。
このアプリの説明によると、Wake Lock. それで、私は何が欠けていますか?
実装ミスや設計上の問題はありますか?