我有一个活动" USBCommunicationManager"和一个班级"助手"。在某些时候"助手"启动Activity(a是传递给" Helper&#34的MainActivity):
Intent intent = new Intent(a, USBCommunicationManager.class);
a.startActivity(intent);
现在"助手"需要调用已启动的" USBCommunicationManager"的公共方法。
这是不好的做法,这怎么可能?
答案 0 :(得分:1)
我将尝试给你一个简单的例子,说明如何在活动中“调用公共方法”。
首先,您需要将manifest
添加到您的活动中
<activity ..
android:launchMode= "singleInstance" />
然后在Helper.class
内部初始化一些自定义操作
public static final String SOME_ACTION1 = "some_action1"
public static final String SOME_ACTION2 = "some_action2"
private void someAction(){
Intent intent = new Intent(a, USBCommunicationManager.class);
intent.setAction(SOME_ACTION1)
a.startActivity(intent);//this calls onNewIntent method in launched activity
}
在USBCommunicationManager
覆盖onNewIntent
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
String action = intent.getAction()
//now you can check this action and use desired method
}
但我推荐阅读有关BroadcastReceiver
的内容,因为使用此解决方案,您可能会意外启动活动。但是使用广播你只需要在活动销毁时取消注册,不要担心活动重启。
答案 1 :(得分:-1)
通过创建该类的对象
来调用另一个类方法
USBCommunicationManager ucm= new USBCommunicationManager();
ucm.methodName();
&#13;