android 兩個應用相互呼叫

2021-09-01 08:29:05 字數 2336 閱讀 5714

個人總結兩個應用相互呼叫:

1.靜態廣播

2.動態廣播

3.startactiviy

4.startactiviyforresult(使用packagename)

5.startactivityforresult(使用action)

1.靜態廣播調起apk

第一步,在將要調起的apk 中androidmanifest.xml註冊靜態廣播

第二步,呼叫的apk中建立廣播接受的類

public class mystaticbroadcastreceiver  extends broadcastreceiver

}

3.第三步,所在的apk中傳送靜態廣播

intent intent = new intent();

intent.setaction("com.example.mydemo.mystaticbroadcastreceiver");

intent.setcomponent( new componentname( "com.example.mydemo" ,"com.example.mydemo.mystaticbroadcastreceiver") );

intent.addflags(intent.flag_activity_new_task);

intent.addflags(intent. flag_include_stopped_packages);

sendbroadcast(intent);

由於動態廣播需要調起的apk需要在 後台執行著,不做展示了

使用startactivity方法調起apk

需要找到調起apk的包名,在使用startactivity即可

intent intent2 = new intent();

componentname componentname = new componentname("com.example.mydemo", "com.example.mydemo.mainactivity");

intent2.setcomponent(componentname);

startactivity(intent2);

4.使用startactivityforresult 方法(利用包名),調起apk,回傳資料

第一步,同startactivity一樣

intent intent3 = new intent();

componentname componentname3 = new componentname("com.example.mydemo", "com.example.mydemo.mainactivity");

intent3.setcomponent(componentname3);

intent3.putextra("bs","3");

startactivityforresult(intent3,0);

第二步,在調起的apk中接受並且回傳資料

intent intent0 =getintent();

string bs = intent0.getstringextra("bs");

intent intent = new intent();

intent.putextra("***","123");

setresult(1,intent);

finish();

第三步,接受回傳的資料

@override

protected void onactivityresult(int requestcode, int resultcode, intent data)

}

5.使用startactivityforresult 方法(利用action),調起apk,回傳資料

和使用包名相同,在不知道包名類名的情況下使用ation,被調起的apk需要新增 aciton

intent intent4 = new intent();

intent4.setaction("android.intent.action.demo");

intent4.putextra("bs","4");

startactivityforresult(intent4,2);

在被調起的apk中的androidmanifest.xml的acitivity下面新增aciton,其他的和利用包名的都一樣

兩個應用相互呼叫導致的session丟失問題

問題是這樣的,有兩個應用,這兩個應用有相互呼叫關係,而且是雙向呼叫,a會呼叫b,b也會呼叫a,且通過nginx對後台的兩個tomcat進行負載均衡,結果在訪問時就會不時的出現session丟失,f12檢視route不停的改變,提示重新登入的錯誤!如果後台是單機的tomcat,則不會有上述問題。經過不...

C 兩個類相互呼叫實現

兩個類a和b實現互相呼叫彼此的方法,如果採用彼此包含對方標頭檔案的方式會出現迴圈引用,所以採用了類的前置宣告的方式 1.class a採用前置宣告的方式宣告class b 2.在classb的標頭檔案中包含class a 的標頭檔案 3.在class a中只能宣告class b型別的指標或者引用 具...

兩個結構體之間的相互呼叫

指向結構體型別變數的使用 首先讓我們定義結構體 struct stu 再定義指向結構體型別變數的指標變數 struct stu p1,p2 定義指標變數p 1 p 2,分別指向結構體型別變數。引用形式為 指標變數 成員 例7 2 對指向結構體型別變數的正確使用。輸入乙個結構體型別變數的成員,並輸出。...