0

我有两个活动。

  1. 主要活动
  2. 列表活动

在 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>

请帮忙。

4

7 回答 7

1

尝试MainActivity在开始之前ListAllActivity完成您的ListAllActivity工作,onBackpressed 并按如下方式完成您的工作:

假设您ListAllActivity从 mainactivity 开始。

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();
}
于 2013-11-12T04:44:35.107 回答
1

当您从 MainActivity 向 ListActivity 触发意图时,然后finish();调用

Intent intent = new Intent(MainActivity.this, ListActivity.class);
startActivity(intent);
finish();
于 2013-11-12T04:41:08.313 回答
1

请按照以下步骤操作

  • 在您将意图传递给之后,MainActivity您需要调用该方法finish()ListAllActivity
  • 在调用按钮上的 finish() 方法时,单击或在默认调用方法ListAllActivity下仅按返回按钮作为返回按钮。finish()
  • 这样,您将退出您的应用程序。

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

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

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

finish();
于 2013-11-12T04:51:42.983 回答
0

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

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        android.os.Process.killProcess(android.os.Process.myPid());
    }
于 2013-11-12T05:16:19.387 回答
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);
}
于 2013-11-12T05:06:33.623 回答
0

You just need to call finish() method:

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

Also on the ListAllActivity back button write below code:

finish();
于 2014-03-26T10:28:39.467 回答
0
Intent intent = new Intent(getApplicationContext(), ListActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

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

于 2013-11-12T04:38:21.193 回答