テスト目的のために、私は を1分ごとに鳴らすサービスを作成しました。 (まだクライアント - サーバーインターフェイスはありません)。 の画面がオンになってもビープ音は鳴りますが、スリープ状態になるとビープ音が止まります。サービスが画面ロックで一時停止する
私は何かのためにサーバ を定期的にポーリングする必要があるアプリケーションを作っています。
これは、常に がバックグラウンドで実行され、1分ごとにサーバーをポーリングしてから、サーバーからの応答に基づいて というサービスを作成しようとしています。
私は2つのボタン、1を開始し、もう1つは にサービスを停止するテストアクティビティを持っています。そして
S_PS_PollService
という名前のサービスクラスは、[スタート活動」ボタンのsetOnClickListenerは含まれていますThread pollServiceThread = new Thread() {
public void run() {
startService(new Intent(MM_MainMenu.this,
S_PS_PollService.class));
}
};
pollServiceThread.start();
「ストップ活動」ボタンは、単にあります
stopService(new Intent(MM_MainMenu.this, S_PS_PollService.class));
後はS_PS_PollServiceクラスからメソッドです:
public void onCreate() {
pollSound = MediaPlayer.create(this, R.raw.chirp);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent myIntent = new Intent(this, S_PS_PollService.class);
pendingIntent = PendingIntent.getService(this, 0, myIntent, 0);
// for wake lock
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag")
// for calendar
calendar = Calendar.getInstance();
}
オンスタート:
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
wl.acquire();
pollSound.start();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MILLISECOND, 60000);
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pendingIntent);
wl.release();
}
アラームがonStart()メソッドを起動するたびに、 のビープ音を鳴らし、新しいアラームを設定します。しかし、それは画面がオンの間だけ有効です。
私はhttps://github.com/commonsguy/cwac-wakefulを試してみましたが、 を取得しました。アンドロイドに比較的新しい...
私は非常に必死に助けてください:)ありがとう、ありがとう!