联系人Picker intent返回错误的活动

时间:2013-12-31 07:03:10

标签: android android-intent

我正在从名为AddFriendActivity的活动中调用联系人选择器。一旦选择了联系人,它总是返回MainActivity而不是调用活动。

我已经检查了android清单,我看不到任何会导致它在恢复时更喜欢MainActivity的标签。我已经提取了(我认为是)下面的相关代码。

的AndroidManifest.xml

    <activity
        android:name="x.MainActivity"
        android:label="@string/activity_main_title" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="x.start.StartActivity"
        android:label="@string/start_activity_title"
        android:noHistory="true" >
    </activity>
    <activity
        android:name="x.policies.PoliciesActivity"
        android:label="@string/activity_policies_title" >
    </activity>

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="x" />

    <activity
        android:name="x.AddFriendActivity"
        android:label="@string/title_activity_add_friend"
        android:parentActivityName="x.friendster.MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="MainActivity" />
    </activity>

从AddFriendActivity

启动联系人选择器的代码
    btnContacts.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            Intent contactpicker = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
            startActivityForResult(contactpicker, 1);
            Log.e("contactpicker", "meh start");
        }
    });

不确定这是否相关,但这是从MainActivity中的片段ChatPanel调用AddFriendActivity的代码

    btnAddFriend.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            Intent intent = new Intent(getActivity(), AddFriendActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            startActivity(intent);
        }
    });

知道为什么会这样吗?我可能错过了一些简单的事情......

1 个答案:

答案 0 :(得分:1)

删除第intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

来自OnClickListener并查看是否有效。

干杯