我用這樣的設置爲我的節目:防止接收廣播多次
IntentFilter filter = new IntentFilter("com.commonsware.cwac.tlv.demo.onlineDbResult");
filter.addCategory(INTENT_CATEGORY);
ResultReceiver receiver= new ResultReceiver();
registerReceiver(receiver, filter);
而且調用接收器:
Intent resultIntent = new Intent("com.commonsware.cwac.tlv.demo.onlineDbResult");
if(categories!=null){
for(String category:categories){
resultIntent.addCategory(category);
Log.d(TAG,"add category "+category);
}
}
不知怎的,在這種方式中註冊的接收器接收的意圖多次(2或3次)這是爲什麼?
com.commonsware.cwac.tlv.demo是命名空間,onlineDbResult只是一個附加字符串,不是類或任何東西。
的的onReceive:
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String result = extras.getString("result");
Log.d("baby","Register received result "+result);
if(progressDialog!=null)
progressDialog.dismiss();
if(result.equals("user_added")){
do stuff
建議的方法是在發送時只使用動作,而在接收端使用過濾器接受多個動作(如果需要)? 我添加了收件人。建議的做法是測試行動而不是我做出的額外「結果」? – 2012-02-11 14:40:22