安卓中onBackPressed ()方法的使用

一、onBackPressed()方法的解释

这个方法放在

void android.app.Activity.onBackPressed()

在安卓API中它是这样解释的:

public void onBackPressed ()

Added in API level 5

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.

我用有道词典翻译了一下:调用活动检测到用户的按的键。默认实现简单地完成当前的活动,但是你可以覆盖这个做任何你想做的。
我的理解就是:当用户在按这个键的时候,会调用这个方法。

这是Android 2.0开始多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可。

二、onBackPressed()方法的使用

public void onBackPressed() {

		Intent intent=new Intent();
		intent.putExtra("data_return", "相信自己");
		setResult(RESULT_OK, intent);
		super.onBackPressed();                return;
      }

大家注意:该方法仅适用于2.0或更新版的sdk

关于这个return我也不怎么清楚,我查了很多资料,都说用到return但是都不清楚用return有什么作用。希望大家可以去搜集更多的资料。我试了试不用return 程序也是可以运行的。

此外,给大家说一下back键和home键的区别:

back键
Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来,
销毁当前Activity。当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有
Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.

home键
Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被
隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,
会直接显示程序栈中最上层的Activity。

back键默认把当前Activity给finish,home键只是把Activity给onStop.

实现按Home键时隐藏程序的效果:
1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键
2:Android
2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可

public void onBackPressed() {
                 // super.onBackPressed();这句话一定要注销,不然又去调用默认的back处理方式了
        Intent intent=new Intent();
        intent.putExtra("data_return", "相信自己");
        setResult(RESULT_OK, intent);

      }

关于onBackPressed()方法我就介绍到这,希望对你有所帮助。

时间: 2024-09-30 05:31:11

安卓中onBackPressed ()方法的使用的相关文章

android中使用startactivityforresult跳转Activity后需要重写onBackPressed()方法

在android项目中经常会用startactivityforresult从一个Activity跳转到另一个Activity(这里指Activity_A和Activity_B),你可以从Activity_B返回数据到Activity_A中, 但是如果直接按手机返回键,因为并没有返回内容给Activity_A,所以程序会报错. 这事可以通过在Activity_B中重写onBackPressed()方法解决问题,代码如下: private int backCode = 1; @Override pu

转-安卓中实现两端对齐,中间fill_parent的方法

安卓中实现两端对齐,中间fill_parent的方法 Java代码:   <?xml version="1.0″ encoding="utf-8″?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill

安卓中的数据存储方式以及ContentProvider的简单介绍

1.介绍android的数据存储方式 File存储 sharedPrefrence存储方式 conmtentprovider sqlitedatabase 网络存储 2.请介绍下ContentProvider是如何实现数据共享的 安卓中如果想将自己应用程序的数据暴露给其他的应用程序的时候就需要创建内容提供者.第三方可以通过contentResolver来访问该provider 3.为什么要使用ContentProvider?它和sql的实现上有什么差别? ContentProvider屏蔽了数据

绑定服务调用远程服务中的方法

在Andorid平台中,各个组件运行在自己的进程中,他们之间是不能相互访问的,但是在程序之间是不可避免的要传递一些对象,在进程之间相互通信.为了实现进程之间的相互通信,Andorid采用了一种轻量级的实现方式RPC(Remote Procedure Call 远程进程调用)来完成进程之间的通信,并且Android通过接口定义语言(Andorid Interface Definition Language ,AIDL)来生成两个进程之间相互访问的代码,例如,你在Activity里的代码需要访问Se

安卓中的Eventbus

安卓中的eventbus,可以代替消息机制,广播,对线程的处理更加明确 将eventbus包拷贝到安卓的lib中,再导入库,就可以使用了在Oncreat中去注册,Ondestory中注销 package com.lyj.eventbus; import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import a

安卓中的内存泄漏

因为安卓是基于java语言的,所以我们先来看一看java中的内存泄漏,然后在此基础上来谈谈安卓中的内存泄漏. 一java中的内存泄漏: java中的内存泄漏主要是指在堆中分配的内存,明明已经不需要的时候,还仍然保留着访问它的引用,导致GC回收不能及时回收(关于GC回收不做过多赘述),导致这种情况出现的最主要原因是长生命周期的对象持有短生命周期对象的引用,导致短生命周期的对象明明已经不需要却无法被GC回收,从而导致内存泄漏.主要包括以下几种情况: 1在一个类中创建了一个非静态内部类的静态实例,如下

安卓中Service详解

service(服务)是安卓中的四大组件之一,它通常用作在后台处理耗时的逻辑,与Activity一样,它存在自己的生命周期,也需要在清单文件中配置相关信息,本博客将对Service的各个知识点进行详细讲解. 一Service的基本用法: 1使用本地服务 1)服务的启动方式 1通过Context的startService()方法启动服务:以该方法启动的服务,开启该服务的应用组件(如Activity)与该Service不存在关联关系,即使开启该服务的Activity被销毁,Service任能够一直在

解决安卓中页脚被输入法顶起的有关问题

解决安卓中页脚被输入法顶起的问题 在实际开发中,我们对页脚有两种要求:让其固定在底部或者被输入法托起.下面来看看这两种问题的解决办法 问题截图: 1.让页脚固定在底部(无论是否出现输入法) 解决办法:设置软键盘的输入模式:用窗体管理器设置布局参数为自动调整 方法一:java代码中实现:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_IN

安卓中实现界面数据懒加载

大家在使用手机新闻客户端的时候就会有一个发现,大多数的新闻客户端都会把新闻分类,诸如头条.娱乐.体育.科技等等,如何实现这种界面的呢?这个实现起来其实很简单,就是在一个Fragment中实现多个ViewPage的切换,再在ViewPage的上面放一个TabLayout,关联起来就可以实现联动效果.如果大家感觉不太明了的话,以后我可以专门写一篇关于Fragment中放入多个ViewPage的博客,今天,我主要介绍的是怎样实现界面即Fragment的懒加载.那么,大家就会奇怪了既然是加载界面直接加载