2011-04-25 183 views
4

我在清單文件中註冊了我的廣播接收器(如下所示)。它的工作正常。動態註冊廣播接收器

<receiver android:name="MyIntentReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <category android:name="android.intent.category.HOME" /> 
    </intent-filter> 
</receiver> 

但它保持註冊。即每當手機啓動我的應用程序啓動。但我只想要一次。

我明白,如果它是動態註冊的,我們可以實現這一點。即我們可以在onPause()或onDestroy()方法中註銷它。 如果可能的話,請給我代碼來做到這一點。我是這個新手。任何幫助,將不勝感激。謝謝。

我嘗試下面的代碼,但它是沒有用的:

public class BeforeReboot extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.beforereboot); 
    } 
    private BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() 
    { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Intent startupBootIntent = new Intent(context, 
       AfterRebootDynamic.class);//new class to be launched 
      startupBootIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(startupBootIntent); 
     } 
    }; 

    public void onResume() { 
     super.onResume(); 
     IntentFilter filter = new IntentFilter(); 
     filter.addAction("android.intent.action.BOOT_COMPLETED"); 
     filter.addCategory("android.intent.category.HOME"); 
     registerReceiver(myBroadcastReceiver, filter); 
    } 

    public void onPause() { 
     super.onPause(); 
     unregisterReceiver(myBroadcastReceiver); 
    } 
} 

回答

0

退房this問題。答案包括一個適當的例子。

+0

不創建BoradCastReceiver作爲一個內部類,而是作爲一個獨立的一個。 – 2011-04-25 09:42:34

+0

我創建了一個獨立的BCR ..創建了它的對象,註冊並註銷了該對象..沒有工作..我做錯了.. – prijin 2011-04-25 10:19:04

+0

因此,任何人只要給我的Java代碼爲我在標記做的。 .. – prijin 2011-04-26 05:30:46

0

步驟

  1. 創建意圖過濾器。 的IntentFilter的IntentFilter =新的IntentFilter(CUSTOM_INTENT)
  2. 創建廣播Reciever 接收機接收器=新接收機()其中Reciever類擴展BroadcastReciever類
  3. 註冊廣播接收器使用registerReceiver()由:

    LocalBroadcastManager:對於收到當地意圖,即在同一個應用程序內。

    上下文:用於接收遠程目標。

  4. 呼叫unRegisterReceiver()來註銷廣播接收器

    請參閱本教程的詳細信息,&源代碼:Create Simple Dynamic Recievers

相關問題