0

当用户从主屏幕按下返回键时,我想结束我的应用程序。我尝试使用System.exit(0),但它似乎没有工作。

我必须做什么才能手动结束我的应用程序?

    package com.mahavega.qcdemo;


import com.mahavega.qcdemo.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.View.OnClickListener;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener {
     private GestureDetector gestureDetector;
        View.OnTouchListener gestureListener;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gestureDetector = new GestureDetector(this, new MyGestureDetector());
        gestureListener = new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                return gestureDetector.onTouchEvent(event);
            }
        };
        ImageView ad = (ImageView) findViewById(R.id.imageView1);
        ImageView im2 = (ImageView) findViewById(R.id.imageView2);
        ImageView im3 = (ImageView) findViewById(R.id.imageView3);
        ImageView im4 = (ImageView) findViewById(R.id.imageView4);
        ImageView im5 = (ImageView) findViewById(R.id.imageView5);
        ad.setOnClickListener(MainActivity.this);
        im2.setOnTouchListener(gestureListener);
        im2.setOnClickListener(MainActivity.this); 
        im3.setOnTouchListener(gestureListener);
        im3.setOnClickListener(MainActivity.this); 
        im4.setOnTouchListener(gestureListener);
        im4.setOnClickListener(MainActivity.this); 
        im5.setOnTouchListener(gestureListener);
        im5.setOnClickListener(MainActivity.this); 
        ad.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(MainActivity.this, Adds.class));
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    class MyGestureDetector extends SimpleOnGestureListener {
        @Override
        public boolean onFling (MotionEvent e1, MotionEvent e2, float velocityX,    float velocityY)
        {
            float sensitvity = 50;
            if((e1.getX() - e2.getX()) < sensitvity){
                startActivity(new Intent(MainActivity.this, Login.class));
            }

            return super.onFling(e1, e2, velocityX, velocityY);
        }

    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub


    }
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        System.exit(0);
        finish();
        super.onBackPressed();
        }


   }

这是我的全部代码

4

4 回答 4

3

根据您正在运行/构建的 Android 版本,您可能需要为您添加一些帮助Activity来捕捉后退按钮。添加此功能可提供帮助:

            @Override 
            public boolean onKeyDown(int keyCode, KeyEvent event)  { 
                if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 
                        && keyCode == KeyEvent.KEYCODE_BACK 
                        && event.getRepeatCount() == 0) { 
                    onBackPressed(); 
                } 

                return true; 
            } 
于 2013-03-27T11:24:10.663 回答
2

在您的Activity通话finish()中。参考这里https://developer.android.com/reference/android/app/Activity.html#finish()

于 2013-03-27T11:15:17.603 回答
0

在您的 Activity 上调用 moveTaskToBack(true) (它会从屏幕退出您的应用,但不会破坏它)

于 2013-05-07T18:04:07.647 回答
0
public static final void android.os.Process.killProcess(int pid)

简单,工作,做你想做的事。但请注意,不建议在 Android 上显式退出应用程序。(常见的 GUI 应用程序只在最顶层的 Activity 上调用 finish() 并让操作系统决定何时退出应用程序进程。)

于 2013-04-29T08:54:15.413 回答