2012-04-04 89 views
1
public class bootCompleteReceiver extends BroadcastReceiver{ 
private External external; 

public bootCompleteReceiver(External _external){ 
    external = _external; 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    external.doStuff(); 
} 
} 

使用此代碼啓動完成不會註冊,但如果您卸下構造函數它將工作得很好。 (注意:不用說,接收器在清單中正確註冊)。是否可以重寫啓動完成構造函數?

任何人都可以驗證我的恐懼靜態接收器不能有一個構造函數或解釋一種方法做這個代碼試圖?

回答

1

由於構造函數具有參數,因此無法在啓動時調用該代碼。沒有辦法填充該參數,因此它永遠不會被系統調用。就係統而言,你的「外部」類是一個未知的實體。

添加無參數構造函數或刪除當前構造函數,以便系統可以訪問它。

+0

非常感謝2000+ – 2012-04-04 14:51:23

相關問題