按下后退按钮退出

时间:2013-11-12 04:31:48

标签: android android-activity back-button

我有两项活动。

  1. MainActivity
  2. ListActivity
  3. 在MainActivity中完成一些工作后,ListAllActivity启动。 我想从ListAllActivity按下后退按钮时退出应用程序。我的代码是,

    @Override
    public void onBackPressed() {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
        super.onBackPressed();
    }
    

    但是,当我从ListAllActivity按下后退按钮时,它只会让我回到MainActivity。

    这些活动的AndroidManifest条目是:

    <activity
            android:name="com.example.myapps.MainActivity"
            android:label="@string/loading" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.myapps.ListAllActivity"
            android:label="@string/title_activity_list_all" >
    
        </activity>
    

    请帮忙。

7 个答案:

答案 0 :(得分:1)

当您将意图从MainActivity触发到ListActivity时,请像{/ p>一样调用finish();

Intent intent = new Intent(MainActivity.this, ListActivity.class);
startActivity(intent);
finish();

答案 1 :(得分:1)

在开始MainActivity之前尝试完成ListAllActivity,并在ListAllActivity上完成onBackpressed,如下所示:

假设您从mainactivity开始ListAllActivity

public class MainActivity extends Activity
{
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

     ....................
      //Supposing you are starting activity on button click write as below in your onclick event. 
     Intent intent = new Intent(MainActivity.this, ListActivity.class);
      startActivity(intent);
    finish();

  }
}

ListAllActivity

@Override
public void onBackPressed() {
    super.onBackPressed();
    finish();
}

答案 2 :(得分:1)

按照以下步骤

  • 在您将意图传递给MainActivity
  • 之后,您需要调用finish()方法ListAllActivity
  • ListAllActivity调用按钮上的finish()方法,或者只需按后退按钮作为后退按钮,默认情况下调用finish()方法。
  • 这样您就可以退出自己的应用。

在下一个按钮上单击MainActivity写下面的代码

Intent intent=new Intent(MainActivity.this,ListAllActivity.class);
startActivity(intent);
finish();

并在ListAllActivity后退按钮上写下代码

finish();

答案 3 :(得分:0)

Intent intent = new Intent(getApplicationContext(), ListActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

像这样传递意图从第一个活动开始列表活动,当你在列表活动应用程序中按回来将退出。

答案 4 :(得分:0)

这就是你需要的所有

@Override
public void onBackPressed ()
{       
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}

答案 5 :(得分:0)

只需在onBackPressed()中使用我的代码片段即可使用进程ID终止进程。它简单而且效率更高。

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        android.os.Process.killProcess(android.os.Process.myPid());
    }

答案 6 :(得分:0)

您只需要调用finish()方法:

Intent intent=new Intent(MainActivity.this,ListAllActivity.class);
startActivity(intent);
finish();

同样在ListAllActivity后退按钮上写下代码:

finish();