如何使用onbackpressed退出应用程序?

时间:2015-01-08 10:13:46

标签: android intentfilter onbackpressed

我的项目中有两个活动..我在第一个活动中设置了intent-filter。现在我在第一个活动中有一个按钮,点击之后它会重定向到第二个活动..我添加了一些代码在我的第二个活动的onbackpress关闭应用程序,但而不是关闭应用程序,它进入第一个活动..任何人都告诉我什么是错误..

public class First extends ActionBarActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn=(Button)findViewById(R.id.first);
    btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent=new Intent(First.this,Second.class);
            startActivity(intent);

        }
    });
}

SecondActivity.java

public class Second extends Activity{


private Button btns;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
    btns=(Button)findViewById(R.id.secs);
}

void Showtoast(String message) {
Toast.makeText(Second.this, message, Toast.LENGTH_LONG).show();}
private Boolean exit = false;

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    if (exit) 
    {
        finish(); // finish activity
    } else 
    {
        Toast.makeText(this, "Press Back again to Exit.",
                Toast.LENGTH_SHORT).show();
        exit = true;
        new Handler().postDelayed(new Runnable() 
        {
            @Override
            public void run()
            {
                exit = false;
            }
        }, 3 * 1000);

    }
}

清单

  <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.close_app_example"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="21" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".First"
        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="Second"></activity>
</application>

当我点击后退按钮时,它显示第一页而不是关闭应用程序查看图像

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:3)


您需要先使用startActivity将当前上下文置于另一个活动中。之后,您可以完成第一个活动,然后转到下一个活动,这样当用户按下第二个活动中的后退按钮时,它会关闭应用程序,在First.java中的btn.onClickListener下添加这段代码: / p>

Intent intent = new Intent(this, Second.Class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish(); // Call once you redirect to Second activity

答案 1 :(得分:2)

当你搬到第二个活动时,

完成第一个活动。

使用

        Intent intent=new Intent(First.this,Second.class);
        finish()
        startActivity(intent);

答案 2 :(得分:1)

如果您在开始First后不需要Second,那么您将完成First

public class First extends ActionBarActivity {

private Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btn=(Button)findViewById(R.id.first);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
        Intent intent=new Intent(First.this,Second.class);
        startActivity(intent);
        finish();

    }
});

}

另外,我建议您阅读Tasks and Back Stack以了解其效果。