Android开发中的finish()与onDestroy()方法都是用来结束activity的吧?两个有什么区别?

RT... RT 展开
 我来答
乐乐Learner
2019-07-13 · TA获得超过2428个赞
知道答主
回答量:56
采纳率:0%
帮助的人:1.3万
展开全部

Android开发中的finish()与onDestroy()方法都是用来结束activity的。

1、不同点区别:

finish()方法用于结束一个Activity的生命周期。而onDestory()方法则是Activity的一个生命周期。

其作用是在一个Activity对象被销毁之前,Android系统会调用该方法,用于释放此Activity之前所占用的资源。finish会调用到onDestory方法。在onDestory里打印一句话,运行一下程序,会发现finish方法会把那句话打印出来。

2、方法区别:

Activity.finish()方法:

在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法,当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上边的“back” 按键的时候,也不会再找到这个Activity.

Acitvity.onDestory()方法:

系统销毁了这个Activity的实例在内存中占据的空间。在Activity的生命周期中,onDestory()方法是他声明的最后一步,资源控件等就被回收了。当重新进入此Activity的时候,必须重新创建,执行onCrate()方法。

扩展资料

中介软件

1、操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(喊帆Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。

2、Android采用OpenCORE作为基础多媒体框架。Open CORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

3、Android 使用skia 为核灶凯心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia 也是Google Chrome 的图形引擎。

4、Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。

5、Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存郑辩雹器中,虚拟机的指令相对减少。

6、Dalvik虚拟机可以有多个实例(Instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。

参考资料来源:百度百科-Android

OnlyOne00
高粉答主

2019-07-16 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:649
采纳率:100%
帮助的人:17万
展开全部

Android开发中的finish()与onDestroy()方法都是用来结束activity的。

1、不同点区别:

finish()方法用于结束一个Activity的生命周期。而onDestory()方法则是Activity的一个生命周期。

其作用是在一个Activity对象被销毁之前,Android系统会调用该方法,用于释放此Activity之前所占用的资源。finish会调用到onDestory方法。在onDestory里打印一句话,运行一下程序,会发现finish方法会把那句话打印出来。

2、方法区别:

Activity.finish()方法:

在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法,当睁禅你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也闭键没有被及时释放。

因为移出了栈,所以当你点击手机上边的“back” 按键的时候,也不会再找到这个Activity.

Acitvity.onDestory()方法:

系统销轿早巧毁了这个Activity的实例在内存中占据的空间。在Activity的生命周期中,onDestory()方法是他声明的最后一步,资源控件等就被回收了。当重新进入此Activity的时候,必须重新创建,执行onCrate()方法。

扩展资料

安全权限机制

Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。

系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。

Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。

一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。

参考资料来源:百度百科-Android

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锺芮0G30d3
推荐于2017-09-24 · TA获得超过628个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:158万
展开全部
onDestroy()是生命周期方法,是你的Activity结束的时候由Android系羡首消统调用兄知的,你不能直接调用onDestroy()来结束你芹山的Activity,一般做法是finish(), 在onDestroy()中可以做一些清理操作。
追问
就是说我可以在当前的activity中,重新实现一下onDestroy()方法,对吧?
追答
恩,对的,这个就是java中的方法覆盖Override, 不过android要求你在自己的Activity里覆写生命周期方法时必须先调用父类的方法,如
@Override
public void onDestroy(){
super.onDestroy();

//do something
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式