[解決済み] Androidのコールバックとは何ですか?重複
2022-02-24 01:31:48
質問
コールバックの概念を理解したいのですが。コールバックについてインターネットで検索したところ、インターフェイスを使った例がたくさんあり、あるクラスがそのインターフェイスを使って別のクラスのメソッドを呼び出していることがわかりました。しかし、私はまだコールバックの主要な概念を得ることができない、コールバックを使用しての目的は何ですか?
どのように解決するのですか?
ここで、素敵な チュートリアル コールバックとその使用例についてよく説明しています。
コールバックのコンセプトは、他のクラスで何らかの作業が行われた場合に、同期/非同期のクラスに通知することです。これをHollywoodの原則と呼ぶ人もいる: "Don't call us we call you".
以下はその例です。
class A implements ICallback {
MyObject o;
B b = new B(this, someParameter);
@Override
public void callback(MyObject o){
this.o = o;
}
}
class B {
ICallback ic;
B(ICallback ic, someParameter){
this.ic = ic;
}
new Thread(new Runnable(){
public void run(){
// some calculation
ic.callback(myObject)
}
}).start();
}
interface ICallback{
public void callback(MyObject o);
}
クラスAはクラスBを呼び出して、スレッドで何らかの作業をさせます。スレッドが作業を終えると、コールバックを介してクラスAに通知し、結果を提供します。だからポーリングとか必要ない。結果が出ればすぐに取得できます。
Androidでは、コールバックはアクティビティとフラグメントの間などで使用されます。フラグメントはモジュール化されている必要があるので、フラグメントの中でコールバックを定義して、Activityのメソッドを呼び出すことができます。
関連
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] java.util.MissingFormatArgumentException: 形式指定子 '%s' がありません。
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました