在Android 8.0之上 的本地广播
package com.example.p00451131.myapplication; import android.content.ComponentName; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; /** * 本程序的一些类型 * 接收器类型:静态 * 广播类型:标准广播 * 测试环境:Android 8.0 * 内容:广播在两个app中接收,并更新UI */ public class MainActivity extends AppCompatActivity { boolean flag = true; private static MainActivity ins; public static MainActivity getinstance(){ return ins; } public void updateTextView(){ MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { TextView text = (TextView)findViewById(R.id.text); if (flag) { text.setVisibility(View.VISIBLE); flag = false; }else { text.setVisibility(View.INVISIBLE); flag = true; } } }); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button =(Button) findViewById(R.id.button); ins = this; button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent("com"); //发送自定义广播到本程序 intent.setComponent(new ComponentName("com.example.p00451131.myapplication", "com.example.p00451131.myapplication.MyBroadcastReceiver")); sendBroadcast(intent); //发送自定义静态广播去另外一个程序 intent.setComponent(new ComponentName("com.example.p00451131.myapplication111","com.example.p00451131.myapplication111.MyReceiver")); sendBroadcast(intent); } }); } }
package com.example.p00451131.myapplication; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; import android.widget.Toast; public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO: This method is called when the BroadcastReceiver is receiving // an Intent broadcast. Log.i("hello", "onReceive:MyBroadcastReceiver "); Toast.makeText(context, "recieve an Broadcast",Toast.LENGTH_SHORT).show(); MainActivity.getinstance().updateTextView(); } }
xml中文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/text"/> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center_horizontal" android:text="@string/app_name" android:textColor="@color/colorAccent" android:visibility="invisible"/> </LinearLayout>