Android 显示联系人后后退按钮不工作

Android 显示联系人后后退按钮不工作,android,android-intent,Android,Android Intent,我正在玩Pro Android 4中的“可点击列表项”代码。守则基本上是: public class MainActivity extends ListActivity implements OnItemClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); CursorL

我正在玩Pro Android 4中的“可点击列表项”代码。守则基本上是:

public class MainActivity extends ListActivity implements OnItemClickListener
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        CursorLoader loader = new CursorLoader(this, Contacts.CONTENT_URI, null,
            null, null, Contacts.DISPLAY_NAME + " ASC");
        Cursor cursor = loader.loadInBackground();

        String[] columns = new String[] { Contacts.DISPLAY_NAME };
        int[] views = new int[] { android.R.id.text1 };

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
            android.R.layout.simple_list_item_1, cursor, columns, views, 
                CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
        setListAdapter(adapter);

        getListView().setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
    {
        Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, id);
        Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
        startActivity(intent);
    }
}
public类MainActivity扩展了ListActivity实现了ListListener
{
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
CursorLoader loader=新的CursorLoader(此,Contacts.CONTENT_URI,null,
null,null,Contacts.DISPLAY_NAME+“ASC”);
Cursor=loader.loadInBackground();
字符串[]列=新字符串[]{Contacts.DISPLAY_NAME};
int[]视图=新int[]{android.R.id.text1};
SimpleCrsorAdapter=新的SimpleCrsorAdapter(此,
android.R.layout.simple_list_item_1、光标、列、视图、,
游标适配器。标志(寄存器、内容、观察者);
setListAdapter(适配器);
getListView().setOnItemClickListener(此);
}
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id)
{
Uri contactUri=ContentUris.withAppendedId(Contacts.CONTENT\u Uri,id);
意图=新意图(Intent.ACTION\u视图,contactUri);
星触觉(意向);
}
}
这一切都很好。我看到联系人列表,当我点击某个姓名时,它会打开此人的通讯簿

问题是“后退”按钮在通讯簿中不起作用。根据这本书,点击地址簿上的后退按钮应该会让我回到上面的活动。但是我被带回了主屏幕

我的应用程序仍在运行,当我手动切换到它时,我返回到它,列表视图处于正确的上一个滚动位置,等等

这是在安卓4.1.1上实现的。我想知道是否有什么额外的东西我应该实施,使这项工作

这是清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.contactslist"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.READ_CONTACTS"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

听起来您的活动堆栈不知怎么搞砸了。 在开始调用startActivity(intent)之前,请尝试添加以下内容


我可以看看你的清单文件吗?我用你的代码复制/粘贴风格创建了一个快速的应用程序,它对我来说工作得很好。唯一一次它不工作是当我按下左上角的按钮使用“人”的应用程序查看所有。。。然后,当我按back键时,我会出现在主屏幕上。但是简单的后退就可以了,我也遇到了同样的问题。您是否已经解决了问题?是否有人不同意活动堆栈听起来似乎有问题?
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);