2012-04-18 23 views
0

私は2つのアプリケーションAとBを持っていますが、両方のアプリケーションは私によって作られていますが、それらは異なるパッケージに入っています。アクティビティBのデータをアクティビティAに抽出したい。外部アクティビティの開始()

これは私がActivityA.startactivityforresult(ActivityB)を使用しています。

これはOKです。私はActivityBからデータを取得する必要があり、getExtra()呼び出しでNullpointerExceptionsを取得する必要があります。

ActivityA:

protected void someMethod() 
{ 
    Intent intent = getPackageManager().getLaunchIntentForPackage("some.package.app"); 
    intent.putExtra("action", "retrieveData"); 
    startActivityForResult(intent, 7854); 
} 

protected void onActivityResult (int requestCode, int resultCode, Intent intent) 
{ 
    Log.d(TAG, "test: " + intent.getExtras().getString("test")); 
} 

はActivityB:

protected void onResume() 
{ 
    if (getIntent().getExtras() != null && getIntent().getExtras().getString("action").equals("retrieveData")) 
    { 
     Intent intent = getIntent(); 
     intent.putExtra("test", "This is a test response"); 

     setResult(7854, intent); 
     finish(); 
    } 
} 

OUTPUT: test: null

私が何か間違ったことをやっている、またはこれは単に許可されていませんか?

UPDATE

04-18 18:28:34.908: E/AndroidRuntime(15711): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=7854, result=0, data=null} to activity {dk.rasive.testA/dk.rasive.testA.TestActivity}: java.lang.NullPointerException 
04-18 18:32:48.892: E/AndroidRuntime(15801): at dk.rasive.testA.TestActivity.onActivityResult(TestActivity.java:245) 

ライン245は、私は別のアプリケーションでの活動をしようとしていないが、活動Aはまた

onActivityResult(int requestCode, int resultCode, Intent data) 

を上書きする必要があります。このコード

Log.d(TAG, "test: " + intent.getExtras().getString("test")); 

答えて

1

が含まれています

setResult 

は、あなたが投稿したスニペットに違いはありませんが、ResultCodeではなくRequestCodeを取ります。

編集:私はちょうどreadability'sために@Override注釈を取り除か

<activity 
     android:name="ActivityB" 
     <intent-filter> 
      <action android:name='retrieveData'/> 
     </intent-filter> 
    </activity> 
+0

のAndroidManifest.xml。 – Rasive

+0

アクティビティAは、 'onActivityResult'をオーバーライドする必要があります。私はあなたが@Overrideを逃していることについて何も言わなかった。 – techiServices

+0

Aha私は見る:)それは問題を部分的に解決した。今私は: '結果の配信結果の失敗{who = null、request = 7854、result = 0、data = null}'ランタイム例外が発生しました。 – Rasive

関連する問題