最近遇到一个需求,其中一个功能就是需要获取当前activity的应用包名,当然执行者也可以是别的应用,并不只是本activity所属的应用来回去当前activity。 Android5.0之前是有一个很简单的方法,那就是直接调用activityManager的getRunningTasks函数,我们都知道android通过activity栈来管理众多的activity,那么我们获取到这个栈,然后取栈顶元素,就是此时前台的activity了,如果要获取对应包名,
转载自zrong's blog 有一个Android应用包含包含一个后台程序,该程序会定期连接服务器来实现自定义信息的推送。但是,当这个应用处于前台的时候,后台程序就没有必要连接服务器了。这样可以节省网络资源,也更省电。 用什么方法知道该应用是否处于前台呢? 网上搜到的方法大多数都是使用下面的代码: ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); //获得task列表 List<ActivityM
MainActivity如下: package come.on; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget
第一节 缘由与准备 最近有时间空闲,闲来无事,想到使用钉钉打卡有时会迟到,所以周末的时候去看了相关网上资料,做了个demo。 材料:定时器,AccessibilityService 加工方案:使用定时器在签到签退期间内自启,通过AccessibilityService模拟点击:分为签到与签退两种情况。 签到正常流程:工作-》考勤打卡-》(判断是否弹出窗口-是:我知道了否跳过)-》签到。 签到迟到流程:工作-》考勤打卡-》迟到打卡。 签退正常流程:工作-》考勤打卡-》签退。 工艺难点:签到页中嵌套的是基于W
大家好,又到了新一期的项目需求讨论,很多APP都有安全的意识,比如一些银行的APP,你登录后,看一些东西,然后这时候锁屏了。或者是按了Home键退到了后台,这时候,再启动这个App,可能就会又到了这个APP的解锁的界面。或者重新登录的界面。防止安全。
android 5.0 之后官方屏蔽了获取栈顶信息的api,如下的方法在大多数机器上可用:
我们在很多android应用中可能会看到悬浮窗按钮,最多的应该就是360了,通过代码我们也可以实现这个功能
通过ActivityManager来获取进程名,网上也能搜索到很多人推荐这个用法。
需求:假设我们的APP有3个页面AActivity,BActivity,CActivity,我们的APP需要一直运行在前台(特殊设备),要求实现一个监控服务,来监视APP是否运行,如果有3个页面都不运行了就说明这个APP已经挂掉了,否则说明APP在运行状态,不做处理,挂掉之后,我们需要重新启动App来让它继续处理运行状态,对外暴露一个来停止监控服务的广播,这样我们想停止监控服务时,发送一个广播即可。
任务管理器(ActivityManager) Android中ActivityManager类似于Windows下的任务管理器,能得到正在运行程序的内容等信息 List getRunningServices(int maxNum) Return a list of the services that are currently running. 这个maxNum是指返回的这个集合的最大值 可以利用ActivityManager去判断当前某个服务是否正在运行。 List getRunni
大家都知道刻舟求剑的寓言故事,说的是事物是发展变化着的,如果拘泥于原来的情况,那随着情况的改变,就不会得到预期的结果。同样,影响app运行的因素,并不只是外部环境(如硬件、系统、权限等等),还包括app自身的运行信息。如果app的运行状态发生了变化,那么原先处理正确的逻辑也可能处理失败,所以在特定的情况下,我们得对app的运行情况进行检查。
双十一快要来临了,安卓三个版本已近更新完毕,打包上线,所以最近在疯狂的写博客、欢迎大家前来讨论问题,互相学习o!!! 今天和大家分享一下—Android系统信息与安全机制–
继承自PushMessageReceiver(抽象类,继承自BroadcastReceiver),其作用主要是:
距离上一篇文章发表都已经差不多1个月了,一场席卷全球的肺炎给全球经济和生活带来了巨大的损失,也被誉为人类的第三次世界大战;有幸有不幸吧。而我也有时间专注安卓的开发,现在就关公舞大刀,分享一下安卓开发经验二三事。
该方法属于隐藏方法,需要使用反射机制调用,同样需要在AndroidManifest.xml文件中添加权限并且要先在application中加入android:sharedUserId="android.uid.system"系统级权限才可以调用隐藏方法
Demo地址:https://github.com/qyxxjd/ClearProcesses
作为一个开发者,开发任何一个App都少不了登陆功能(个别特例除外),传统的一般只有3种:账号(邮箱)密码、短信验证、扫码登陆。但是这三种方式都太繁琐,如果忘记密码,就可能需要向你的密保邮箱或者手机发送验证码,重新填写密码,然后再去登陆,这个过程很麻烦。不光是一个开发者,作为一个用户来说,我也深受其害(当然也有一些app使用人脸解锁、指纹识别、手势解锁等功能,但是不太常见)。后来上网查阅资料,移动、电信、联通都有各自的一键登录SDK出台,同时市面上也有一些其它的一键登录的SDK出现。由于我是sharesdk的老用户,无意间发现它们官网有一个mob秒验,我就体验了一下,下面详细的讲解一下我的整个使用过程。
我们知道广播ACTION_PACKAGE_REMOVED可以监听应用程序卸载,但不幸的是这个意图被卸载的程序是不可知的,所以无法监听到自己的程序被卸载。
对于没有 Service 的 App,程序一旦切换到后台,可能很快就被回收了,这里使用 ActivityManager.getRunningTasks(int maxNum) 方法来获取当前正在运行的任务,注意:此方法并不被系统推荐,且是一个 Deprecated 的方法。
在AndroidManifest.xml中配置Activity节点是配置theme如下:
领取专属 10元无门槛券
手把手带您无忧上云