13

私は2つのAndroidアプリを持っています。両方とも電話にインストールされます。2つのパッケージ名がcom.android.test1とcom.android.test2であるとします。Main2method()test1.Mainクラスからメソッドを呼び出すにはどうすればよいですか?

test1のクラス:

package com.android.test1;
import android.app.Activity;
import android.os.Bundle;

public class Main extends Activity {  

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

test2のクラス:

package com.android.test2;
import android.app.Activity;
import android.os.Bundle;

public class Main2 extends Activity {  

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public static void Main2method() {
        //do something..
    }
}
4

4 に答える 4

14

多分あなたはそれを呼び出すためにインテントを放送することができます。

Intent it = new Intent("com.android.test2.Main2method");
context.sendBroadcast(it)

放送を受信するために参加BroadcastReceiverしてください:com.android.test2.Main2

public class ActionReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if ("com.android.test2.Main2method".equalsIgnoreCase(intent.getAction())) {
            Main2method();
        } 
    }
}

onCreateクラスのメソッドに受信機を登録しMain1ます:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...

    receiver = new ActionReceiver();
    IntentFilter filter = new IntentFilter();
    filter.addAction("com.android.test2.Main2method");
    registerReceiver(receiver, filter);
    ...
}
于 2012-09-09T13:11:40.790 に答える
3

app1 から app2 にコールバックを送信する場合:

  1. Intentapp1 のデータを使用して独自のものをスローする必要があります。(見てくださいPendingIntent)。
  2. yout app2 に登録する必要BroadcastReceiverがありますが、これは app1 のIntents.
  3. BroadcastReceiverの onReceiveメソッド (app2 内) は、Intent が app1 によってスローされ、app2 によってキャッチされるたびに呼び出されます。(そこにあなたのロジックを入れてください)
于 2012-09-09T13:27:13.160 に答える
2

使用する必要がある異なるアプリケーション間でメソッドを呼び出すために、Intent

また、 intent-filterBroadcastReceiverが必要になります

于 2012-09-09T12:35:24.713 に答える
0

あるアプリのメソッドを別のアプリから直接呼び出すことはできません。代わりに、あるアクティビティを別のアクティビティから呼び出し、インテント フィルターを使用して結果を取得する必要があります。

これらのリンクはあなたを助けるかもしれません

http://www.vogella.com/articles/AndroidIntent/article.html

http://saigeethamn.blogspot.in/2009/08/android-developer-tutorial-for_31.html

于 2012-09-09T13:24:06.337 に答える