1. 電話機が完全なスリープ モードの場合、電話の着信は別として、AlarmManager インテントを使用して電話機を復帰させることができます。
AlarmManagerクラスのドキュメントから:
アラーム マネージャは、アラーム レシーバの onReceive() メソッドが実行されている限り、 CPU ウェイク ロックを保持します。これにより、ブロードキャストの処理が完了するまで電話がスリープ状態にならないことが保証されます。onReceive() が戻ると、Alarm Manager はこの wake lock を解放します。これは、onReceive() メソッドが完了するとすぐに電話がスリープする場合があることを意味します。アラーム レシーバーが Context.startService() を呼び出した場合、要求されたサービスが開始される前に電話機がスリープ状態になる可能性があります。これを防ぐには、BroadcastReceiver と Service で別の wake lock ポリシーを実装して、サービスが利用可能になるまで電話が動作し続けるようにする必要があります。
2. AsyncTask を使用している場合は、結果を UI スレッドに公開する必要があります。onPostExecute()
AsyncTaskドキュメントから:
AsyncTask を使用すると、UI スレッドを適切かつ簡単に使用できます。このクラスを使用すると、スレッドやハンドラーを操作することなく、バックグラウンド操作を実行し、UI スレッドで結果を発行できます。
3. WakeLock の概念を紹介しているPower Managerの公式ドキュメントを読むことをお勧めします。