1

我的项目中有两个活动..我在第一个活动中设置了意图过滤器..现在我在第一个活动中有一个按钮,点击后它将重定向到第二个活动..我在第二个活动中添加了一些代码活动的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>

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

在此处输入图像描述

在此处输入图像描述

4

3 回答 3

3

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

Intent intent = new Intent(this, Second.Class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish(); // Call once you redirect to Second activity
于 2015-01-08T10:25:44.503 回答
2

当您移动到第二个活动时,完成第一个活动。

利用

        Intent intent=new Intent(First.this,Second.class);
        finish()
        startActivity(intent);
于 2015-01-08T10:16:51.990 回答
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 和 Back Stack以了解它的含义。

于 2015-01-08T10:18:38.410 回答