Android連載22-自定義廣播之標準廣播發送

来源:https://www.cnblogs.com/ruigege0000/archive/2020/07/03/13228003.html
-Advertisement-
Play Games

一、發送自定義廣播 1.廣播主要分為兩種: 標準廣播和有序廣播 2.發送標準廣播 先定義一個廣播接收器來接收廣播 package com.example.broadcasttest2; import android.content.BroadcastReceiver; import android. ...


一、發送自定義廣播

1.廣播主要分為兩種:

  • 標準廣播和有序廣播

2.發送標準廣播

  • 先定義一個廣播接收器來接收廣播
package com.example.broadcasttest2;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyBroadcastReceiver extends BroadcastReceiver {
 
 @Override
 public void onReceive(Context context,Intent intent) {
  Toast.makeText(context, "received in MyBroadcastReceiver", Toast.LENGTH_SHORT).show();
 }
 
}
 
  • 上面的代碼意義在於接收到自定義廣播的時候,就會彈出"received in MyBroadcastReceiver"這句話,然後在AndroidManifest.xml中註冊這個類
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

      ..........................................
        
        <receiver android:name=".MyBroadcastReceiver">
            <intent-filter>
                <action android:name="com.example.broadcasttest.MY_BROADCAST"/>
            </intent-filter>
        </receiver>
    </application>
  • 上面的XML就是當定義的接收器接收到值com.example.broadcasttest.MY_BROADCAST的時候才會觸發那個定義好的廣播器
  • 接下來我們可以猜到就是觸發這條廣播唄,我們用個按鈕來觸發這個廣播吧
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 ..........................................
        android:id="@+id/button"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:text = "Send Broadcast"
        />
</LinearLayout>

 

package com.example.broadcasttest2;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
 
 private IntentFilter intentFilter;
 
 private NetworkChangeReceiver networkChangeReceiver;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
    
  Button button = (Button) findViewById(R.id.button);
  button.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
    sendBroadcast(intent);
   }
  });
 } 
}

 

運行打包安裝:
22.1

  • 我們點擊一下按鈕
    22.2
  • 首先構建出了一個Intent對象,並把要發送的廣播的值傳入,然後調用了Context的sendBroadcast()方法將廣播發送出去,這樣所有監聽com.example.broadcasttest.MY_BROADDCAST這條廣播的廣播接收器就會收到消息。此時發出去的廣播就是一條標準廣播。

二、源碼:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • du -sh #統計當前目錄的大小,以直觀方式展現 du -h --max-depth=1 #查看當前目錄下所有一級子目錄文件夾大小 du -h --max-depth=1 | sort #查看當前目錄下所有一級子目錄文件夾大小併排序 du -h --max-depth=1 | grep [TG] ...
  • 參見:https://www.cnblogs.com/Dylansuns/p/6974272.html Linux安裝JDK完整步驟檢查一下系統中的jdk版本[hadoop@master ~]$ java -versionopenjdk version "1.8.0_222-ea"OpenJDK R... ...
  • 前言 閑暇之時,羚羊給大家分享一下羚羊在Centos7 下安裝Cloudera Manager 6.3.0和cloudera cdh 6.3.2的過程和安裝過程中遇到的坑。至於為什麼要選擇CDH,Cloudera Manager和cdh是什麼,之間又是什麼關係,在這裡羚羊就不做介紹了。 為什麼選擇C ...
  • 一、Spark SQL簡介 Spark SQL是Spark用來處理結構化數據的一個模塊,它提供了一個編程抽象叫做DataFrame並且作為分散式SQL查詢引擎的作用。 為什麼要學習Spark SQL?我們已經學習了Hive,它是將Hive SQL轉換成MapReduce然後提交到集群上執行,大大簡化 ...
  • 一.說明 oracle 的exp/imp命令用於實現對資料庫的導出/導入操作; exp命令用於把數據從遠程資料庫server導出至本地,生成dmp文件; imp命令用於把本地的資料庫dmp文件從本地導入到遠程的Oracle資料庫中。 二.語法 能夠通過在命令行輸入 imp help=y 獲取imp的 ...
  • create directory mydata as '邏輯目錄路徑'; 例如: create directory mydata as '/data/oracle/oradata/mydata'; grant read,write on directory mydata to public sele ...
  • 本文更新於2019-07-27,使用MySQL 5.7,操作系統為Deepin 15.4。 在創建一個n列的複合索引時,實際是創建了n個索引。可利用索引中最左邊的列集來匹配行,這樣的列集稱為最左首碼。 InnoDB表中的記錄會按一定順序存儲。如果有主鍵,則按主鍵順序;如果沒有主鍵但有唯一索引,則按唯 ...
  • 1問題 uuid採用char(32)或char(36)存儲的話,需要占用32或36個位元組。為節省存儲空間,改為binary(16),占用16位元組。對於500W行的表,可節省7.4G的空間。 mybatis中沒有預設的type handler來完成uuid類型<->binary類型的相互轉換,需要自定 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...