[Android] カスタム Listener を interface を使って実装してみる

カスタムでこのようなイベント変更・終了を独自のlistenerを使って通知させることができます。

Android Studio 3.0.1
Android 8.0

 



custom listener

 

ボタンをユーザーがタップしたのを知るためにlistenerをセットします。同様にあるタスクが終了、あるいは事象が変更されたらお知らせを出すメソッドが実装されているAPIがあります。こういったlistenerをカスタムでつくるために

interfaceを活用します。interfaceを実装するときはimplementsを使っています、Buttonがいい例ですね。

 

interface, implements

 
重いタスクをさせて、それが終了したら知らせるという形でクラスを作ってみます。
本来はこういった重いタスクは非同期がいいのですが、ここでは簡略化します。
 
重いタスクとして1〜20までを加算させまてみます(あまり重くないのですが)
 
HeavyTask.java

 
これを実装してみます。
MainActivity.java

 
ログの結果

 

匿名クラス

 
ボタンでよくやる匿名クラスでの実装
HeavyTask.java

 
MainActivity.java

 

別の組み合わせ

 
上の2つの組み合わせ的ですがsetListenerを明示できてわかりやすいのかもしれません
HeavyTask.java

 
MainActivity.java

 
 
Observer Design Pattern in Java
How to create our own Listener interface in android? – Stack Overflow