嗨有沒有一種方法來以編程方式編程創建一個靜態廣播接收器?以編程方式創建靜態android廣播接收器
從它說有使用recievers兩種方法文檔:通過清單
- 寄存器(靜態,當應用程序沒有運行可以使用)
- 註冊通過應用程序上下文(動態的,可以只只要活動/應用程序正在運行)
我找不到一種方法來以編程方式註冊一個靜態接收器。有沒有辦法做到這一點?
嗨有沒有一種方法來以編程方式編程創建一個靜態廣播接收器?以編程方式創建靜態android廣播接收器
從它說有使用recievers兩種方法文檔:通過清單
我找不到一種方法來以編程方式註冊一個靜態接收器。有沒有辦法做到這一點?
您不能在運行時修改清單。因此,您無法在運行時註冊「靜態」接收器。
您可以在運行時啓用和禁用清單註冊的接收器。將<receiver>
元素上的android:enabled
屬性設置爲您希望啓動狀態的任何屬性(例如,禁用了false
)。然後,使用PackageManager
和setComponentEnabledSetting()
在運行時更改該啓用狀態。禁用的接收器不會響應廣播。
很好,謝謝。 – jonney
//For dynamic execution
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
reciever = new IncomingCallReciever();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.PHONE_STATE");
registerReceiver(reciever, filter);
}
@Override
protected void onDestroy() {
if (reciever != null) {
unregisterReceiver(reciever);
reciever = null;
}
super.onDestroy();
}
您想要實現什麼? – earthw0rmjim