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();
    // ここに進行状況の処理を描画
}
}
===========================================================================================

これで、時間経過はできたっぽい。