irpas技术客

Android forhelp+orderBroadcast+课后习题无序广播 ch08广播机制_山海上的风

irpas 6691

Android forhelp+orderBroadcast+课后习题无序广播 ch08广播机制 ?????? forhelp案例 ???????orderBroadcast案例 ???????课后习题无序广播 案例 forhelp


activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/stitch"> <Button android:id="@+id/btn_help" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:background="#FFD2D2" android:padding="5dp" android:text="发送求救广播" android:textSize="20sp" /> </RelativeLayout> MainActivity import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private MyBroadcastReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init(){ receiver = new MyBroadcastReceiver(); //实例化广播接收者 String action = "Help_Stitch"; IntentFilter intentFilter = new IntentFilter(action); registerReceiver(receiver,intentFilter); //注册广播 Button btn_help= (Button) findViewById(R.id.btn_help); btn_help.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); //定义广播的事件类型 intent.setAction("Help_Stitch"); sendBroadcast(intent);//发送广播 } }); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(receiver); } } MyBroadcastReceiver import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("MyBroadcastReceiver", "自定义的广播接收者,接收到了求救广播事件"); Log.i("MyBroadcastReceiver", intent.getAction()); } } 图片

orderBroadcast案例
activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/stitch_one"> <Button android:id="@+id/btn_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="80dp" android:background="#FBFBFF" android:padding="5dp" android:text="发送有序广播" android:textSize="20sp" /> </RelativeLayout> MainActivity import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { MyBroadcastReceiverOne one; MyBroadcastReceiverTwo two; MyBroadcastReceiverThree three; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); registerReceiver(); init(); } private void registerReceiver(){ //动态注册MyBroadcastReceiverTwo广播 two = new MyBroadcastReceiverTwo(); IntentFilter filter2 = new IntentFilter(); filter2.setPriority(1000); filter2.addAction("Intercept_Stitch"); registerReceiver(two,filter2); //动态注册MyBroadcastReceiverOne广播 one = new MyBroadcastReceiverOne(); IntentFilter filter1 = new IntentFilter(); filter1.setPriority(1000); filter1.addAction("Intercept_Stitch"); registerReceiver(one,filter1); //动态注册MyBroadcastReceiverThree广播 three = new MyBroadcastReceiverThree(); IntentFilter filter3 = new IntentFilter(); filter3.setPriority(600); filter3.addAction("Intercept_St itch"); registerReceiver(three,filter3); } private void init() { Button btn_send= (Button) findViewById(R.id.btn_send); btn_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { /* Intent intent = new Intent(); intent.setAction("Intercept_Stitch"); //定义广播的事件类型 sendOrderedBroadcast(intent,null); // 发送广播*/ Intent intent = new Intent(); intent.setAction("Intercept_Stitch"); // 定义广播的事件类型 MyBroadcastReceiverThree receiver = new MyBroadcastReceiverThree(); sendOrderedBroadcast(intent,null,receiver, null, 0, null, null); // 发送有序广播 } }); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(one); unregisterReceiver(two); unregisterReceiver(three); } } MyBroadcastReceiverOne import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyBroadcastReceiverOne extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("BroadcastReceiverOne", "自定义的广播接收者One,接收到了广播事件"); } } MyBroadcastReceiverThree public class MyBroadcastReceiverThree extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("BroadcastReceiverThree", "自定义的广播接收者Three,接收到了广播事件"); } } MyBroadcastReceiverTwo import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyBroadcastReceiverTwo extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("BroadcastReceiverTwo", "自定义的广播接收者Two,接收到了广播事件"); abortBroadcast(); //拦截有序广播 Log.i("BroadcastReceiverTwo","我是广播接收者Two,广播被我拦截了"); } } 图片

课后习题无序广播
activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="发送广播" /> </RelativeLayout> MainActivity import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { String action = "cn.itcast.unorder"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction(action); sendBroadcast(intent); } }); MyBroadcastReceiver receiver = new MyBroadcastReceiver(); IntentFilter intentFilter = new IntentFilter(action); registerReceiver(receiver,intentFilter); //注册广播 } public class MyBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Log.i("MyBroadcastReceiver", "接受到了无序广播"); } } } 图片


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #ch08广播机制