我有2个Android应用程序。两者都安装在手机上。比方说两个包的名称是com.android.test1和com.android.test2。我怎样才能调用该方法 Main2method()
从test1.Main类?
有关测试1级:
包com.android.test1;
进口android.app.Activity;
进口android.os.Bundle;
公共类主要扩展活动{
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
}
}
有关测试2级:
包com.android.test2;
进口android.app.Activity;
进口android.os.Bundle;
公共类MAIN2延伸活动{
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
}
公共静态无效Main2method(){
//做一点事..
}
}
解决方案
也许你可以播放一个Intent调用它。
意图是=新的意向书(com.android.test2.Main2method);
context.sendBroadcast(IT)
请在com.android.test1.Main2一个BroadcastReceiver接收广播:
公共类ActionReceiver扩展的BroadcastReceiver {
@覆盖
公共无效的onReceive(上下文的背景下,意图意图){
如果(com.android.test2.Main2method.equalsIgnoreCase(intent.getAction())){
Main2method();
}
}
}
在类MAIN1的onCreate方法注册接收器:
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
...
接收器=新ActionReceiver();
IntentFilter的过滤器=新的IntentFilter();
filter.addAction(com.android.test2.Main2method);
registerReceiver(接收机,过滤器);
...
}
I have 2 android apps. Both are installed on the phone. Lets say the package name for the two are com.android.test1 and com.android.test2. How can i call the method Main2method()
from the test1.Main class ?
Class for 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);
}
}
Class for 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..
}
}
解决方案
Maybe you can broadcast an Intent to call it.
Intent it = new Intent("com.android.test2.Main2method");
context.sendBroadcast(it)
make a BroadcastReceiver in com.android.test1.Main2 to receive the broadcast:
public class ActionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("com.android.test2.Main2method".equalsIgnoreCase(intent.getAction())) {
Main2method();
}
}
}
register the receiver in onCreate method of class 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);
...
}