我有2个Android应用程序。两者都安装在手机上。让我们说两者的包名是com.android.test1和com.android.test2。如何从test1.Main类调用方法Main2method()
?
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..
}
}
答案 0 :(得分:13)
也许你可以广播一个Intent来调用它。
Intent it = new Intent("com.android.test2.Main2method");
context.sendBroadcast(it)
在com.android.test1.Main2中创建一个BroadcastReceiver来接收广播:
public class ActionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("com.android.test2.Main2method".equalsIgnoreCase(intent.getAction())) {
Main2method();
}
}
}
在Main1类的onCreate方法中注册接收器:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
receiver = new ActionReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("com.android.test2.Main2method");
registerReceiver(receiver, filter);
...
}
答案 1 :(得分:3)
如果您想将回调从app1发送到app2:
Intent
。 (看看PendingIntent
)。BroadcastReceiver
,它将处理你的app1的Intents
。onReceive
方法(在app2中)就会被调用。 (把你的逻辑放在那里)答案 2 :(得分:2)
要在不同的应用程序之间调用方法,您需要使用Intent
答案 3 :(得分:-1)
您无法直接从其他应用调用一个应用的方法。 相反,您必须使用Intent过滤器调用另一个活动并获取结果。
这些链接可能对您有所帮助
http://www.vogella.com/articles/AndroidIntent/article.html
http://saigeethamn.blogspot.in/2009/08/android-developer-tutorial-for_31.html