我正在开发两个应用程序。第一个有一个按钮,当按下它时会启动一个带有一些数据的隐式意图。意图由inten-filter
注册在其他应用程序的主要活动上捕获。
我需要的是子活动立即将一些数据发送回父(在后台)而不完成,并且必须留在前台。
我试图通过startActtivityForResult()
andOnActivityResult()
方式来实现这一点,但没有成功。实际上,此方法仅在子活动完成时才有效。
我正在寻找其他解决方案,例如服务……但我是新手,我至少需要走上正确的道路。
提前致谢。
我给你一些进一步的细节:
第一个活动(父)启动以下意图:
Intent intent = new Intent();
intent.setAction("xx.xx.xxxxx");
intent.putExtra("Data1", data1);
intent.putExtra("Data2", data2);
...
startActivityForResult(intent,MANAGE_CODE);
并且 OnActivityResult() 方法是
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch (requestCode) {
case MANAGE_CODE:
switch (resultCode) {
case 0:
...
break;
}
break;
}
}
子活动执行此操作:
Intent caller = getIntent();
if ( caller.getAction().equals("xx.xx.xxxxx") ) {
Intent intent = new Intent();
intent.putExtra("data", "12345");
// Set result
getParent().setResult(0, intent);
}
我省略了实现细节...如果我不关闭子活动(例如使用 finish() 方法),我看不到 setResult() 调用有效