Android Studio で タイマーを作ってみる③ (カウントダウンタイマーでカウントダウン)
カウントダウンタイマーを使って、進行状況の描画と、
カウントダウン終了時に電源を立ち上げる処理をかく。
※ロックの解除はできませんでした。
スリープモードになっていても、とりあえず音はなるようになった。
①電源がつかなくても画面が光る処理
※AndroidManifest.xmlに以下を記載
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
②SoundPoolのLoadは実行前に準備しておく。
===========================================================================================
// カウントダウンタイマーで 進行状況を描画
public class CountDownTm extends CountDownTimer {
public CountDownTm(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
// スリープモードでも、画面が光る
// BackGroundからのwakelock処理
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
PowerManager.WakeLock wakelock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "hingeWorks");
wakelock.acquire();
wakelock.release();
// SoundPoolにLoadは前もってやっておく。
SoundPool sp = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
spId = sp.load(getApplicationContext(), R.raw.computer_broken,1);
sp.play(spId, 1.0F, 1.0F, 0, 0, 1.0F);
// Toastに表示
// 第3引数は、表示期間(LENGTH_SHORT、または、LENGTH_LONG)
Toast.makeText(getApplicationContext(), "おしまい", Toast.LENGTH_LONG).show();
}
@Override
public void onTick(long millisUntilFinished) {
long nowTm = new Date().getTime();
// ここに進行状況の処理を描画
}
}
===========================================================================================
これで、時間経過はできたっぽい。