Androidアプリ開発

任意の処理を遅延実行するサブルーチン

この記事は約8分で読めます。
記事内に広告が含まれています。
スポンサーリンク

この記事は Androidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Java での開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Android のアプリ開発でお役にたててれば、嬉しいです。
(これから Android のアプリ開発や Java での開発を始めたい方への案内は、
記事の最後で紹介します)

この記事のテーマ


処理を遅らせて実行するサブルーチンを使用して遅延処理を実装する

ゲーミングイヤフォンは低遅延タイプを選びましょう♪

ポイント

値変化のイベントリスナーに処理を記述するケースで、イベントの発生間隔が短く、操作し難いことがあります。
このような場合、処理中に発生したイベントの無効化と処理の遅延実行することで改善することが可能です。
今回は、処理を遅らせて実行するサブルーチンを使用して、遅延処理の実装を紹介します。

postDelayed

処理の遅延実行

任意の処理(Runnable)と遅延する時間(ミリ秒)を指定して、HandlerpostDelayedで実行します。


    :
  // 遅延実行 //
    public void delay(Runnable runnable, long time) {
        new Handler(Looper.getMainLooper()).postDelayed(runnable, time);
    }
    :

サブルーチンの呼び出し

サンプルとして、SeekBarを左右に動かして、コマ送り・戻しの処理を実装します。
処理完了でSeekBarを中央に戻します。

動画をコマ送りする機能をSeekBarと処理の遅延実行を使用して実装

値変化のイベントリスナー(onProgressChanged)でコマ送り処理を実装するにはSeekBarを中央に戻す処理を遅延実行させる必要があります。
また、遅延実行の待ち時間中はコマ送り・戻しの処理を受けつけいないようにします。

    private ExoPlayer               exoPlayer;
    private boolean                 seek;

        :
        SeekBar seekBar = view1.findViewById(R.id.seekbar);
        seekBar.setMin(-1);
        seekBar.setMax(1);
        seekBar.setProgress(0);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @SuppressLint("DefaultLocale")
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                if (!seek) {
                    seek = true;
                    long pos = exoPlayer.getCurrentPosition() + (long) (progress * 30);
                    exoPlayer.seekTo(pos > 0 ? pos : 0);
                    delay(() -> {
                        seekBar.setProgress(0);
                        seek = false;
                    }, 100);
                }
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });
        :

任意の処理(Runnable)と遅延時間(100ミリ秒)を指定して、遅延実行するサブルーチン(delay)をび出します。

今回は、ここまでです。

処理を遅らせて実行するサブルーチンを使用して遅延処理しているAndroidアプリです。

誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にある
コメントか、
こちらから、お願いいたします♪

ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

ブログランキング・にほんブログ村へ

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ

アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、JavaやC#などのオブジェクト指向言語が初めての方は、Android のアプリ開発ができるようになるには、かなりの時間がかかります。
オンラインスクールでの習得を、強くおススメします。

未経験者からシステムエンジニアを目指すのに最適です。まずは無料相談から♪

未経験者からプログラマーを目指すのに最適です。まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています。お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適です。まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪

スポンサーリンク
msakiをフォローする
スポンサーリンク

コメント欄

タイトルとURLをコピーしました