我有一個現有的應用程序。現在我想添加一些額外的功能。額外的功能需要一些庫。如果我在我的應用程序中使用庫,應用程序大小會增加。所以我想在一個單獨的應用程序中創建這個額外的功能,然後將新的應用程序集成到我現有的應用程序中(如果我對現有應用程序進行了一些更新,那麼我必須下載整個應用程序,這是我不想要的)。我不想在一個apk中。兩者都應該是獨立的。從第一個應用程序讓我們說A,我想要在新的應用程序B中調用一個活動。我使用了intent.setComponent(),應用程序B的活動從A中調用,但是我無法從第一個應用程序中將應用程序B的結果。Android:兩個獨立應用程序集成
應用程序A
public void onClickBtnToApplicationB(View v) {
try {
final Intent intent = new Intent(Intent.ACTION_MAIN, null);
final ComponentName cn = new ComponentName("pakacagename","package.class");
intent.setComponent(cn);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent, REQUEST_CODE);
} catch (ActivityNotFoundException e) {
//handle Exception
}
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode) {
case REQUEST_CODE:
handleResult(resultCode, intent);
break;
}
}
public void handleResult(int resultCode, Intent intentResult) {
switch (resultCode) {
case RESULT_OK:
String Result = intentResult.getStringExtra("RESULT");
// I need Results from Application B here..
break;
case RESULT_CANCELED:
break;
}
}
應用B: 在應用程序B,1點開始對結果2.class另一個活動,並獲得滿意的結果。收到結果後,它們將返回到處理結果方法'putextras中的第一個應用程序。所以我需要在應用程序A的handleresult方法中得到結果,這是我沒有得到的。
Intent s = new Intent(1.this,2.class);
startActivityForResult(s, REQUEST_CODE_B);
protected void onActivityResult(int requestCode, int resultCode, Intent intentResult) {
switch(requestCode){
case REQUEST_CODE_B:
handleResult(resultCode, intentResult);
}
}
public void handleResult(int resultCode, Intent intentResult) {
switch (resultCode) {
case RESULT_OK:
String scanResult = intentResult.getStringExtra("RESULT");
Intent newintent = new Intent();
newintent.putExtra("RESULT", scanResult);
setResult(Activity.RESULT_OK, newintent);
finish();
break;
case RESULT_CANCELED:
break;
}
如果沒有看到代碼,我們無法幫助您。 – BoD
@BoD代碼現在可用 – Shah
是否調用onActivityResult? – BoD