从第一个活动禁用Android后退按钮单击?

时间:2014-10-25 06:55:06

标签: android

我正在使用Android应用程序我的应用程序包含10个以上的活动(比如活动A,B等),其中第一个活动是启动画面,下一个是列表视图,用于选择导航到列表视图中的项目另一个不同的活动。我的问题是,当我从任何内部活动(A,B,C等)单击硬件后退按钮时,它必须导航到列表视图
当我双按任何其他活动的后退按钮时,应用程序必须关闭。这里应用程序完美无缺。但我的问题是,当我从我的任何内页按下后退按钮时,它导航到列表视图然后如果我按下后退按钮一次从listview我的应用程序退出我不想要这个我需要我的应用程序只有当我双击listview中的后退按钮才能关闭吗?

按下按钮的代码是这个

public void onBackPressed() {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
}

和我的manifest.xml

       <activity
        android:name="learnersseries.mathematics.complexnumbers.Firstintro"
         android:screenOrientation="portrait" 
         android:launchMode="singleTop"            
        android:label="@string/app_name" >


        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
    </activity>


    <activity android:name="Myintegralpage"
        android:screenOrientation="portrait"
                   >

        <intent-filter></intent-filter>
    </activity>
    <activity android:name="myimagine"
        android:screenOrientation="portrait" 

       >
        <intent-filter></intent-filter>
    </activity>
    <activity android:name="Myintroductionpage"
        android:screenOrientation="portrait" 

      >
        <intent-filter></intent-filter>
    </activity>
    <activity android:name="MainActivity"
        android:noHistory="false"
        android:screenOrientation="portrait" 
       >


        <intent-filter></intent-filter>
    </activity>
    <activity android:name="Complexnumbers"
        android:screenOrientation="portrait"
         >

        <intent-filter></intent-filter>
    </activity>
    <activity android:name="Equality"
        android:screenOrientation="portrait"
         >

1 个答案:

答案 0 :(得分:0)

@Override
public void onBackPressed() {

    if (back_pressed + 1000 > System.currentTimeMillis()) { //back_pressed is long

           //double click

    } else {
            back_pressed = System.currentTimeMillis();
            //single click
    }

}