我的小型测试应用是一个显示所有联系人的ListActivity。当用户单击一个时,它会打开“人员”ACTION_EDIT活动。这很好用。当用户点击“返回”或以其他方式完成编辑时,主“人员”列表活动开始,而不是返回到我的活动。
为什么会这样?
这是我的代码:
public class ReadContact extends ListActivity implements OnItemClickListener
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
...
}
@Override
public void onItemClick (AdapterView<?> parent, View view, int position, long id)
{
Cursor cur = ((SimpleCursorAdapter)parent.getAdapter()).getCursor();
cur.moveToPosition (position);
String key = cur.getString (2);
System.out.println ("clicked " + key);
// make intent to edit contact
Intent intent = new Intent (Intent.ACTION_EDIT);
intent.setData (Uri.parse (ContactsContract.Contacts.CONTENT_LOOKUP_URI + "/" + key));
startActivityForResult (intent, 2);
}
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data)
{
System.out.println ("request " + requestCode + ", result " + resultCode);
}
}
请注意,永远不会调用onActivityResult。另外请注意我无法控制联系人编辑代码 - 这是Android提供的“people”应用程序的一部分。 感谢。
答案 0 :(得分:0)
我向Android提交了一个关于此问题的错误。有人看着它并回答说有一个无证的解决方法。来自错误报告:
未记录的解决方法是调用putExtra(“finishActivityOnSaveCompleted”,true);关于ACTION_EDIT意图。
但是,由于这是未记录的,我不知道哪个Android版本会使用它。
我尝试了它,它适用于我正在使用的Android版本:4.1.2。有关详细信息,请参阅issue 39262。