2017-07-12 69 views
0

我有一個Activity「USBCommunicationManager」和一個「Helper」類。在某些時候,「助手」啓動活動(一個是傳遞給「助手」在MainActivity):android:調用一個活動的公共方法

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

現在「助手」需要調用啓動「USBCommunicationManager」的公共方法。

這是不好的做法,這是怎麼可能的?

+1

總而言之,您必須使用activity + interface或activity + broadcastReceiver來調用活動中的方法。 –

+0

感謝您的回答。我是一個Android初學者,可惜不知道這意味着什麼。 – murkr

回答

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 
} 

但我recomended到讀約BroadcastReceiver,因爲使用此解決方案,您可能會意外啓動活動。但是使用廣播,您只需在活動銷燬時取消註冊,並且不要擔心活動重新啓動。

+0

感謝您的答案 – murkr

-1

呼叫由類的創建對象

USBCommunicationManager ucm= new USBCommunicationManager(); 
 
ucm.methodName();

+0

這不關注活動類 –