[Android Pro] 有關Broadcast作為內部類時註冊的一些問題

來源:互聯網
上載者:User

標籤:android   style   檔案   io   art   問題   cti   div   

很經常Broadcast都會寫成一個Activity或者Service的內部類。這時候的註冊和普通有點小區別。

有兩種情況1、假如是再Manifest檔案裡面靜態註冊的話,需要注意。ex:<application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <receiver android:name=".MyActivity$MyReceiver" >            <intent-filter>                <action android:name="com.example.test.BROADCAST" />            </intent-filter>        </receiver> </application>       其中關鍵點是一、    .MyActivity$MyReceiver   注意類名與內部類的名字之間用$符號隔開。二、    action裡面配的name com.example.test.BROADCAST  當配位這個時,廣播發送時        Intent intent = new Intent("com.example.test.BROADCAST");          intent.putExtra("action", "test");          sendBroadcast(intent);        要和Intent裡面的參數一致。否則將無法接受到廣播。三、    public static class MyReceiver extends BroadcastReceiver        別忘了給接收器定義成public static的,否則啟動會報錯。 2、假如為動態註冊時一般寫在OnCreate 或者 OnStart等方法裡面        IntentFilter filter = new IntentFilter(com.example.test.BROADCAST);registerReceiver(broadcastReceiver, filter);動態註冊的話就必須啟動程式後才能接受到廣播,靜態註冊就算這個程式沒啟動,也可以接收到廣播。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.