android:调用活动的公共方法

时间:2017-07-12 14:45:56

标签: android android-activity

我有一个活动" USBCommunicationManager"和一个班级"助手"。在某些时候"助手"启动Activity(a是传递给" Helper&#34的MainActivity):

Intent intent = new Intent(a, USBCommunicationManager.class);
a.startActivity(intent);

现在"助手"需要调用已启动的" USBCommunicationManager"的公共方法。

这是不好的做法,这怎么可能?

2 个答案:

答案 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)

通过创建该类的对象

来调用另一个类方法

&#13;
&#13;
USBCommunicationManager ucm= new USBCommunicationManager();
ucm.methodName();
&#13;
&#13;
&#13;