2017-07-12 7 views
0

私はアクティビティ "USBCommunicationManager"とクラス "ヘルパー"を持っています。いくつかの時点で、「ヘルパー」(aはMainActivityは「ヘルパー」に渡される)の活動を開始します:android:アクティビティのパブリックメソッドを呼び出す

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

今、「ヘルパー」が開始「USBCommunicationManager」のパブリックメソッドを呼び出す必要があります。

悪い習慣で、これはどのように可能ですか?

+1

簡単に言えば、activity + interfaceまたはactivity + broadcastReceiverを使用して、アクティビティ内のメソッドを呼び出す必要があります。 –

+0

答えに感謝します。私はアンドロイドの初心者であり、悲しいことにそれが何を意味するのか分からない。 – murkr

答えて

1

を作成することによって、別のクラスのメソッド。

まずあなたが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 
} 

では、いくつかのカスタムアクション

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 
} 

を初期化Helper.class

<activity .. 
     android:launchMode= "singleInstance" /> 

次に、あなたの活動にmanifestに追加する必要がある。しかし、私はにお奨め読む約BroadcastReceiverです。このソリューションを使用すると、誤ってアクティビティを起動する可能性があります。しかし、ブロードキャストを使用すると、アクティビティを破棄し、アクティビティの再起動について心配する必要はありません。

+0

答えに感謝 – murkr

-1

コール私はあなたにどのように活動して「パブリックメソッドを呼び出す」するための簡単な例をあげてみます、そのクラスのオブジェクト

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

+0

これはアクティビティクラスには関係ありません –

関連する問題