0

我尝试使用意图存储联系人

Intent intent = new Intent(
                    ContactsContract.Intents.Insert.ACTION,
                    ContactsContract.Contacts.CONTENT_URI);
            intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
            intent.putExtra(ContactsContract.Intents.Insert.NAME,
                    "Contact name here");
            intent.putExtra(ContactsContract.Intents.Insert.COMPANY,
                    "Company Name");
            intent.putExtra(ContactsContract.Intents.Insert.EMAIL,
                    "someemailid@gmail.com");
            intent.putExtra(ContactsContract.Intents.Insert.PHONE,
                    "9999999999");
            if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH)
                intent.putExtra("finishActivityOnSaveCompleted", true);
            startActivityForResult(intent, 100);

现在从联系人屏幕中,如果我选择丢弃或恢复,我得到了 RESULT_CANCELLED onacitivityresult,但为什么在点击后退按钮时 m gtting result_ok。如果我最小化应用程序(最近的应用程序按钮点击),则在 4.2 中还有一个问题,联系人将被存储而无需点击完成或后压。尝试使用正常的活动类(没有默认意图操作)它的工作正常返回在后退按钮点击时取消我希望联系意图具有相同的行为。在后退按钮点击它应该返回result_cancelled。

当我点击最新的应用程序时
保存在应用程序上的联系人最小化

谢谢

4

1 回答 1

1

可能是因为ContactEditorActivity覆盖返回键并保存当前联系人:

@Override
public void onBackPressed() {
    mFragment.save(SaveMode.CLOSE);
}

更新:

"its also storing contact on minimizing the app"

当应用程序被最小化时,它的onPause()onStop()方法将被调用。在您的情况下,联系人被存储,因为ContactEditorFragment将数据保存在onStop()

@Override
public void onStop() {
    super.onStop();
    if (mAggregationSuggestionEngine != null) {
        mAggregationSuggestionEngine.quit();
    }

    // If anything was left unsaved, save it now but keep the editor open.
    if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING) {
        save(SaveMode.RELOAD);
    }
}
于 2013-07-15T16:12:04.193 回答