AとBの2つのアプリケーションがあります。どちらのアプリケーションも私が作成したものですが、パッケージが異なります。アクティビティBからアクティビティAにデータを抽出したいと思います。
このために私は使用しますActivityA.startactivityforresult(ActivityB)
。
これは、ActivityBからデータを取得する必要があるまでは問題なく機能します。その後、getExtra()呼び出しに対してNullpointerExceptionsを取得し始めます。
アクティビティA:
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"));
}
アクティビティB:
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
私は何か間違ったことをしていますか、それともこれは単に許可されていませんか?
アップデート
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にはこのコードが含まれています
Log.d(TAG, "test: " + intent.getExtras().getString("test"));