您好,登錄后才能下訂單哦!
廣播也是通過intent來傳遞的。
廣播分為有序廣播和標準廣播。
標準廣播是發送廣播后,所有的廣播接受者都可以去接收。
有序廣播是發送廣播后,由高優先級的先接收廣播,處理后再往后廣播,同時高優先級的接受者可以中斷廣播。
廣播注冊可以分為動態注冊和靜態注冊。下面就先將靜態注冊。靜態注冊是新建廣播接收者時,是通過new----->other------->Brodcast Receiver來實現的。AS會自動幫我們在Manifext.xml里注冊好,我們只需要添加intent-filter及在里面加入action即可。
下面的例子是靜態注入,發送一條標準廣播,然后接收。
1、MainActivity
package com.yuanlp.sendbroadcast; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view){ Intent intent=new Intent("com.yuanlp.sendBroadcast.MY_BROADCAST"); //設置intent的action sendBroadcast(intent); //發送廣播 } }
2、 activity_main.xml里
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.yuanlp.sendbroadcast.MainActivity"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="發送廣播" tools:layout_editor_absoluteX="137dp" tools:layout_editor_absoluteY="136dp"/> </android.support.constraint.ConstraintLayout>
3、MyReceiver
package com.yuanlp.sendbroadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context,"接收到廣播",Toast.LENGTH_SHORT).show(); } }
4、Manifext.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yuanlp.sendbroadcast"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <receiver android:name=".MyReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="com.yuanlp.sendBroadcast.MY_BROADCAST"></action> </intent-filter> </receiver> </application> </manifest>
運行程序后,在點擊按鈕后,自定義的廣播 接受者會受到廣播,并彈出toast
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。