鉴于代码:
public class CommandSequence {
public CommandSequence() {
}
public void startCommunications(View v) {
Bundle dataout1 = new Bundle();
dataout1.putInt("ACTION", Communications.ACTION_LOAD_COMMAND_ONLY);
dataout1.putInt("PORT", Commands.MESSAGE_TYPE_SMC);
dataout1.putInt("COMMAND", Commands.SMC_RESETEVENTSTATUS);
((MainActivity) v.getContext()).sendMessageToBackgroundCommunicationsService(
Communications.MESSAGE_LOAD_COMMAND,
dataout1);
}
}
我必须将'sendMessageToBackgroundCommunicationsService()'与调用活动上下文一起投射,即'MainActivity'。
是否可以传递一个允许我在运行时强制转换方法的参数,以便可以从任何活动类调用此方法?
答案 0 :(得分:1)
为什么不创建一个基本活动类,让您的所有活动继承,然后在需要拨打电话时转换为此活动:
((MyBaseActivity) v.getContext()).sendMessageToBackgroundCommunicationsService(
Communications.MESSAGE_LOAD_COMMAND,
dataout1);
[编辑]事实上,为了让你的代码更好一点,你可以将活动传递给你的方法,这样你的类就不需要知道另一个类了。
public void startCommunications(View v, Class myActivity) {
//your code
}