android怎样防止当前应用activity被其它应用覆盖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎样防止当前应用activity被其它应用覆盖相关的知识,希望对你有一定的参考价值。

参考技术A 你这样想这样的android平台还有什么意义,如果只是一个应用,你不用担心被其他应用覆盖;除非是Android在系统级做处理 参考技术B 答得上的乃神人 参考技术C 擦 问题问的傻 估计没人能回答

android中的context是起啥作用的?

我的问题是这样的:
许多函数调用的时候都需要提供context,而activity也是继承自context的,很多时候可以直接传一个this指针。那么这个context类起了怎样的作用?为什么要这些时候传context过去,这样做是因为android使用了怎样的机制?

  当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context。

Context是一个抽象基类,我们通过它访问当前包的资源(getResources、getAssets)和启动其他组件(Activity、Service、Broadcast)以及得到各种服务(getSystemService),当然,通过Context能得到的不仅仅只有上述这些内容。对Context的理解可以来说:Context提供了一个应用的运行环境,在Context的大环境里,应用才可以访问资源,才能完成和其他组件、服务的交互,Context定义了一套基本的功能接口,可以理解为一套规范,而Activity和Service是实现这套规范的子类,这么说也许并不准确,因为这套规范实际是被ContextImpl类统一实现的,Activity和Service只是继承并有选择性地重写了某些规范的实现。


  activity继承关系


  

Service和Application


可以看出几个组件都继承于Context

  一个应用中Context的数量等于Activity的个数 + Service的个数 + 1,这个1为Application

参考技术A Context字面意思是上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄。很多方法需要通过 Context才能识别调用者的实例:比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity以及Service。

Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。本回答被提问者和网友采纳

以上是关于android怎样防止当前应用activity被其它应用覆盖的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android M 或更高版本中在运行时更改权限时防止重新创建 Activity

Android 怎么退出整个应用程式

android中的context是起啥作用的?

怎样获取安卓系统自带的package和activity

Android----获得当前应用包名当前activity的名字推断是否是系统桌面service类

android中怎样动态的将数据从service上传递到activity