91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中如何在有序廣播中添加自定義權限

發布時間:2022-04-11 16:10:22 來源:億速云 閱讀:260 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“Android中如何在有序廣播中添加自定義權限”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Android中如何在有序廣播中添加自定義權限”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

Android 中在有序廣播中添加自定義權限的實例

有序廣播說明:

有序廣播因為要處理消息的處理結果,所以要復雜一些。

* sendOrderedBroadcast(Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras);

如果只是想讓廣播可以按優先級來收取,并不在意處理的結果,可以用下面的版本:

* sendOrderedBroadcast(Intent intent, String receiverPermission);

同樣,在多用戶環境下,也可以選擇給哪個用戶發廣播:

* sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras);

首先我們要在AndroidManifest.xml中自定義一個權限,格式參考系統自帶的權限,Android.permission.XXXXX,只要是xxx.peimission.XXXXXX就行,如果不按照這個格式,那么這個權限可能沒法使用。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  package="com.example.lsj.broadcasttest"> 
  <span > <permission 
    android:name="test.permission.TEST" 
    android:protectionLevel="normal" 
    ></permission></span> 
  <application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    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 android:priority="20"> 
        <action android:name="hahaha" /> 
      </intent-filter> 
    </receiver> 
    <receiver 
      android:name=".MyReceiver2" 
      android:enabled="true" 
      android:exported="true"> 
      <intent-filter android:priority="19"> 
        <action android:name="hahaha" /> 
      </intent-filter> 
 
    </receiver> 
  </application> 
 
  <span > <uses-permission android:name="test.permission.TEST"/></span> 
</manifest>

然后使用sendOrderedBroadcast(intent,"test.permission.TEST");就可以發送有序廣播了,當然發送廣播之前還要指定一下接受者的優先級,優先級越高,android:priority指定的數字就越大。取值的范圍是:-1000~1000這個就不詳細敘述了。

public class MainActivity extends AppCompatActivity { 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button send= (Button) findViewById(R.id.send); 
    send.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        Intent intent=new Intent(); 
        intent.setAction("hahaha"); 
 
        intent.putExtra("msg","一個簡單的消息"); 
        sendOrderedBroadcast(intent,"test.permission.TEST"); 
      } 
    }); 
  } 
}

第一個BroadcastReceiver在接收到廣播的時候,如果想要添加一些自己的東西進去,可以先創建一個Bundle對象,并且存入數據。
然后通過setResultExtras(bundle),把這個bundle添加到原來的消息中,

ublic class MyReceiver extends BroadcastReceiver { 
  public MyReceiver() { 
  } 
 
  @Override 
  public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context,"接收到的Intent的Action為:"+intent.getAction()+"\n消息內容是:"+intent.getStringExtra("msg"),Toast.LENGTH_LONG).show(); 
    Bundle bundle=new Bundle(); 
    bundle.putString("first","第一個BroadCast存入的消息!"); 
    setResultExtras(bundle); 
 
  } 
}

下一個BroadcastReceiver通過getResultExtras可以將信息提取出來。

ublic class MyReceiver2 extends BroadcastReceiver { 
  public MyReceiver2() { 
  } 
 
  @Override 
  public void onReceive(Context context, Intent intent) { 
    // TODO: This method is called when the BroadcastReceiver is receiving 
    Bundle bundle=getResultExtras(true); 
    String first=bundle.getString("first"); 
    Toast.makeText(context,"第一個BroadCast存入的消息為:"+first,Toast.LENGTH_LONG).show(); 
  } 
}

讀到這里,這篇“Android中如何在有序廣播中添加自定義權限”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新建县| 资阳市| 陕西省| 沂南县| 阿克| 利辛县| 泉州市| 建平县| 吉水县| 乌拉特中旗| 凌云县| 湖南省| 武邑县| 靖远县| 莫力| 长宁县| 沂南县| 文化| 文登市| 定陶县| 冕宁县| 双城市| 湘西| 莆田市| 万州区| 伊金霍洛旗| 娄底市| 巴东县| 苍梧县| 峨山| 谢通门县| 太白县| 衡阳县| 柘荣县| 磐石市| 麻阳| 黄大仙区| 五峰| 始兴县| 修水县| 香港|