Android call method from another app

后端 未结 4 896
有刺的猬
有刺的猬 2020-12-08 23:56

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 M

相关标签:
4条回答
  • 2020-12-09 00:01

    If you want to send callbacks from app1 to app2:

    1. you should throw your own Intent with data from app1. (take look at PendingIntent).
    2. into yout app2 you should register BroadcastReceiver which will handle your app1's Intents.
    3. broadcastreceiver's onReceive method (in app2) will be called each time when your Intent will be thrown by app1 and catched by app2. (put your logics there)
    0 讨论(0)
  • 2020-12-09 00:07

    You cannot directly call a method of one app from another app. Instead, you have to invoke one activity from another and fetch result using Intent filters.

    These links might help you

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

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

    0 讨论(0)
  • 2020-12-09 00:09

    in order to call method between different application you will need to use, Intent

    also you will need intent-filter and BroadcastReceiver

    0 讨论(0)
  • 2020-12-09 00:21

    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.test2.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);
        ...
    }
    
    0 讨论(0)
提交回复
热议问题