Android在BroadcastReceiver中通過介面回撥更新介面
之前寫廣播接收器都是寫在Activity的內部的,覺得看起來很亂的感覺,畢竟廣播也事和活動是同一級別的元件之一,哪兒能放在活動的裡面啊,決定就來封裝一下,發現居然沒有思路,,同事說用靜態類,直接點就可以了,
但是靜態類在記憶體中不會被回收,只有等程式結束後才會回收,所以決定用介面回撥
介面回撥在安卓中用的很多吧,這個不懂的可以自行搜尋一下哈,就不普及基礎了,
- 新建一個介面UpdateUIListenner.class
public interface UpdateUIListenner {
/**
* 更新UI
*/
void UpdateUI(String str);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 新建一個BroadcastReceiver取名 MyReceiver
public class MyReceiver extends BroadcastReceiver {
UpdateUIListenner updateUIListenner;
@Override
public void onReceive(Context context, Intent intent) {
String key = intent.getStringExtra("key");
updateUIListenner.UpdateUI(key);
}
/**
* 監聽廣播接收器的接收到的資料
* @param updateUIListenner
*/
public void SetOnUpdateUIListenner(UpdateUIListenner updateUIListenner) {
this.updateUIListenner = updateUIListenner;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 在MainActivity裡面
public class MainActivity extends AppCompatActivity {
MyReceiver myReceiver;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btnSend);
tv1 = (TextView) findViewById(R.id.tv);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//傳送廣播
Intent intent = new Intent();
intent.putExtra("key", "資料資料");
intent.setAction("gengxin");
sendBroadcast(intent);
Log.e("+++++","傳送廣播");
}
});
//註冊廣播 ------介面回撥不能使用靜態註冊,只能動態註冊
myReceiver = new MyReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("gengxin");
registerReceiver(myReceiver, intentFilter);
myReceiver.SetOnUpdateUIListenner(new UpdateUIListenner() {
@Override
public void UpdateUI(String str) {
tv1.setText(str);
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(myReceiver);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
相關推薦
Android在BroadcastReceiver中通過介面回撥更新介面
之前寫廣播接收器都是寫在Activity的內部的,覺得看起來很亂的感覺,畢竟廣播也事和活動是同一級別的元件之一,哪兒能放在活動的裡面啊,決定就來封裝一下,發現居然沒有思路,,同事說用靜態類,直接點就可以了, 但是靜態類在記憶體中不會被回收,只有等程式結束後才會回收,所以決
Android 抽象回撥函式以及介面回撥更新UI
回撥函式使用,使得程式碼變得部分跟不變部分更加明顯,程式碼整體上有一個質的提升。 我是用抽象類裡寫的抽象回撥函式,通過通知註冊介面形式,可以隨時傳遞資料,接受資料。 同時我用介面函式回撥更新UI。下面
JavaFX的WebView中通過JavaScript回撥Java的程式
解決webview首次載入的html頁面無法使用js呼叫java程式問題。 根據官網給出的例子
Android通過介面回撥來實現資料更新(Kotlin版)
最近開發一個專案,用的是kotlin,本人kotlin水平有限,還請諒解,需要在fragment修改資料,然後更新到activity中,我使用介面回撥來完成這個需求。 先上一張圖來看一下 修改完暱稱,不僅要在fragment裡更新資料,還要同步更新act
關於在Fragment中通過Activity介面回撥操作Fragment中控制元件報空指標問題
現象描述:當Activity中某個變數改變時候,需要通知到Fragment我們常常用介面實現...。。我們在Activity中先replace,commit該Fragment,接著呼叫介面需要改變變數的方法。。。然後我們在Fragment中的介面回撥方法裡,更具該變數操縱F
對於Android中介面回撥機制的理解
對於介面回撥機制首先要弄明白的問題是為什麼需要它,也就是介面回撥能為我們解決什麼問題: 在開發過程中我們經常會遇到一些有關觸發執行的問題,比如使用者觸發按鈕,然後程式就執行了一系列的操作的比如註冊登入啊;問題的核心在於為什麼是出發了按鈕才執行,不觸發就不執行嗎? 這個時候就能體現出各
介面回撥----點選item中的ImageView,在Activity中顯示dialog
在做專案的時候有一個功能是:點選listview的item中的一個圖示,在activity中彈出一個dialog.想到的一個辦法就是用介面回撥來實現.對於介面回撥這一塊我其實也還是不太懂,別人寫的複雜的一點的慢慢看也能看懂,但要自己寫的話,也就只能寫一些簡單的,這個demo就是一個很簡單
基於介面回撥詳解JUC中Callable和FutureTask實現原理
Callable介面和FutureTask實現類,是JUC(Java Util Concurrent)包中很重要的兩個技術實現,它們使獲取多執行緒執行結果成為可能。它們底層的實現,就是基於介面回撥技術。介面回撥,許多程式設計師都耳熟能詳,這種技術被廣泛應用於非同步模組的開發中。它的實現原理並不複雜,但是對初學
Java中的單例模式、工廠模式、介面回撥、異常
for迴圈:起點為基本資料型別,包括boolean . equals():重寫原因,希望在地址不同但內容相同時也能返回true。 匿名物件:直接new出物件,不需要物件名來接收。 new Person().show(); 內部類:類
Android中Recyclerview使用7----條目中按鈕點選事件,在activity中呼叫(介面回撥)
0引入Recyclerview的支援庫 compile 'com.android.support:recyclerview-v7:23.4.0' 1效果圖: 2程式碼: 2.1MainActivity中: <span style="font-size:18p
JAVA中的介面回撥
定義: /** * @author Administrator * @project: TestOne * @package: PACKAGE_NAME * @date: 2018/11/30 0030 15:42 * @brief: 郭寶 */ public
Adapter與Activity通過介面回撥進行互動
0. 前言 首先說明一下為什麼要寫這麼一篇部落格:最近看了一些其他人的專案,發現很多專案的做法是建立一個專門存放Adapter類的Package包,也有的專案乾脆直接都寫在Activity中。而我屬於
Activity與Fragment通過介面回撥進行通訊
介面回撥在Android中有很多的應用,比如Activity裡的onCreat、onDestroy等方法,按鍵事件監聽。Android對Fragment的是在Android3.0時加入的,所以Android3.0 以前的系統並不支援Fragment,而為了使3.0以前的
通過介面回撥方式來設定RecyclerView的條目點選監聽事件
提到RecyclerView大家總會拿它與ListView相比較, RecyclerView是具有比ListView更具擴充套件性的控制元件, RecyclerView繼承的是ViewGroup, 可以說也是ViewGroup的官方定義控制元件, Recycle
Android中介面回撥、方法回撥
在android開發中我們很多地方都用到了方法的回撥,回撥就是把方法的定義和功能匯入實現分開的一種機制,目的是為了解耦他的本質是基於觀察者設計模式,即觀察者設計模式的的簡化版,例如:在下載時候的進度回撥,在adapter與activity之間的回撥,在javabean和fr
android中的回撥-介面回撥
發現很多初學者對於回撥,介面,抽象 等概念理解的不是很透徹。 今天就以我的經驗把 介面回撥給大家闡述一下。適合初學者看看。 先簡單說說我的理解吧, 所謂的介面回撥。 你先將介面定義好,然後在特定的條件下條用它。 可能很多初學者開始的時候很疑惑,其實這也東西你天天都在
介面回撥在fragment中的使用
我們知道在兩個fragment之間傳遞資料要通過activity,如果兩個fragment之間發生了資料的傳遞,如果這時我們的螢幕發生翻轉activity將會啟動onCreate()方法,這時fragment中的狀態和資料將會被重置而得不到儲存,那麼如果我
Android中的介面回撥詳解,回撥機制:以Activity和Adapter傳遞資料為例。
首先解決啥是回撥: 我覺得這個例子比較好:某天,我打電話向你請教問題,當然是個難題,你一時想不出解決方法,我又不能拿著電話在那裡傻等,於是我們約定:等你想出辦法後打手機通知我,這樣,我就掛掉電話辦其它事情去了。過了XX分鐘,我的手機響了,你興高采烈的說問題已經搞定,應該
Android 中的介面回撥
import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.text.TextPaint; import android.view.View; import androi
Java中(向上,向下)造型造型和介面回撥中的問題
最近回顧了一下java繼承中的問題,下面貼程式碼: package com.cc; /** * 目的:問題驗證,關於向上和向下造型過程中,檢測存在繼承關係的物件訪問關係。 * * * @