Android 应用按返回键异常退出的问题

开发过程中遇到按返回键异常退出的问题,log显示为空指针异常,进一步产看是因为onActivityResult得到的Intent为空。

按返回键复写代码如下:

        @Override
	public void onBackPressed() {
		super.onBackPressed();
		Intent intent = new Intent();
		intent.putExtra("id", id);
		intent.putExtra("path", path);
		setResult(RESULT_CANCELED, intent);
		finish();

	}

查看Activity源码发现onBackPressed的默认实现如下:

    /**
     * Called when the activity has detected the user's press of the back
     * key.  The default implementation simply finishes the current activity,
     * but you can override this to do whatever you want.
     */
    public void onBackPressed() {
        finish();
    }  

因此如果调用了super.onBackPressed(),就调用了finish()函数,因此之后的setResult函数根本没起作用。去掉了super.onBackPressed()之后,异常消失。

时间: 2024-08-04 15:52:51

Android 应用按返回键异常退出的问题的相关文章

Android监听返回键、Home键+再按一次返回键退出应用

Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME [java] view plain copy @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //++自定义点击事件 return tru

Android 应用按返回键退向后台运行

Android应用开发按下返回键退向后台运行 我们日常使用的很多Android应用(如QQ.微信.微博),在应用的主界面按下返回键,应用并没有退出,而是进入后台运行. 那么,开发中是如何实现的呢?我找到了两种方法: 一.监测返回键 1.在Activity中重写onBackPressed()方法. @Override public void onBackPressed() { //此处写退向后台的处理 } 1 2 3 4 1 2 3 4 2.重写onKeyDown()方法(有的应用提示再次点击返回

Android点击返回键back时弹出对话框Dialog

public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { ExitDialog(MainActivity.this).show(); return true; } return super.onKeyDown(keyCode, event); } private Dialog ExitDialog

app点击返回键不退出,双击返回键退出

直接代码 // 按返回键的时候返回上一页面不退出,goBack()表示返回webView的上一页面 public boolean onKeyDown(int keyCoder, KeyEvent event) { if(!webView1.canGoBack() ){ exit(); return false; } if ( keyCoder == KeyEvent.KEYCODE_BACK) { webView1.goBack(); exit(); return false; } else{

android 监听返回键

android监听返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { return true; } return super.onKeyDown(keyCode, event); } event.getRepeatCount() == 0重复次数:1次

android实现点击两次返回键实现退出功能

在使用android平台的app是我们经常会发现点击两次返回键会提示是否退出的功能,下面讲讲此功能是如何实现的(此方法比较简单) 第一种方法是对系统返回键进行监听,定义一个变量记录按键时间,通过计算时间差来实现该功能,代码如下: //退出时的时间private long mExitTime;//对返回键进行监听@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCO

(Android Studio)简单实现:双击返回键,退出应用首页

设计需求:当用户想要退出某个页面(经常为首页)时,跳出Toast提示信息“再按返回键退出!”. 当用户两次双击,时间间隔少于800毫秒时,退出该应用.否则只显示提示信息,无操作. @Override public void onBackPressed() { if(System.currentTimeMillis() - mExitTime < 800) { ScrollingActivity.this.finish(); //关闭本活动页面 } else{ toast("再按返回键退出!

android程序 点击两次返回键程序退出

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { exitBy2Click(); } return false; } /** * 双击退出函数 */ private static Boolean isExit = false; private void exitBy2Click() { Timer tExit = null; if (is

Android监听返回键

android开发中,对返回键事件的监听是要经常用到的,下面以一个例子来演示一下android对返回键的事件监听. public class BackKeyTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); se