android 的manageSpaceActivity引发的血案

  次阅读 作者:智能小宝 来源:互联网 2016-01-14 10:26 我要评论(0)

前言:

看这篇文章首先要知道android:manageSpaceActivity 这个属性是什么。这个属性是在application时候定义的,这个属性指定了一个用于清除数据的Activity,这样一来开发者可以向用户指定开放那些数据用于清除,否则,默认情况是全部都会清除的。看看原文说明:

The fully qualified name of an Activity subclass that the system can launch to let users manage the memory occupied by the

application on the device. The activity should also be declared with an element.

前几天手机出现一个BUG(具体描述如下):

进入“应用程序”,然后从应用程序列表中选择一个进入 到该应用程序信息。会发现有些应用程序是有“启用、停用”的按钮,并且下面还有一个“管理空间”按钮。当你在这里选择“停用”按钮后,如果你再选择下面的“管理空间”按钮,就会出现停止运行。打开LOG信息你会发现如下的报错(这里我用内置的“百度浏览器”来做分析):

01-01 00:02:54.016: D/dalvikvm(1021): GC_FOR_ALLOC freed 1293K, 11% free 11946K/13284K, paused 26ms, total 26ms

01-01 00:02:54.017: E/AndroidRuntime(1021): FATAL EXCEPTION: main

01-01 00:02:54.017: E/AndroidRuntime(1021): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.baidu.browser.apps/com.baidu.browser.settings.BdManageSpaceActivity}; have you declared this activity in your AndroidManifest.xml?

01-01 00:02:54.017: E/AndroidRuntime(1021): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1627)

从上面的报错信息可以明确的知道:系统调用了一个无法找到的Activity,还建议你去确认一下是否在这个app的AndroidManifest.xml是否有配置。从这个报错信息可以很快知道这样的结果:“百度浏览器”这个APP肯定有问题,具体的说应该是这个APP的这个Activity:BdManageSpaceActivity存在问题,要么没有注册、要么没有注册对,要么这个Activity就不存在等。不过,我要说的是:事实并非如此!

要找到问题,首先去确认一下“百度浏览器”这个APP的BdManageSpaceActivity是否OK。让人大跌眼镜的是:AndroidManifest.xml里面定义是OK的,BdManageSpaceActivity.java也是没有问题的。下面是BdManageSpaceActivity在AndroidManifest.xml中的申明:

这样一来“百度浏览器”确实是OK的,其实分析到这里,我就明白了一些道理:一开始怀疑“百度浏览器”有问题是因为上面的报错信息,这个报错信息误导了我,其实早该想到“百度浏览器”是没有问题的,因为出现“停止运行”的情况是在别的APP经过不同寻常的操作而照成的,而一般的正常操作是OK的,既然正常操作的“百度浏览器”的BdManageSpaceActivity这个Activity能够正常启用,那么就已经说明“百度浏览器”的BdManageSpaceActivity是没有问题的。

好了,我们来分析第二步:看看设置里面的“应用管理”这个APP到底在“停用”这个“百度浏览器”做了些什么?

mPm.setApplicationEnabledSetting(mInfo.packageName, mState, 0);这里的 mState = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT ,

这样一来这个APP就被停用了,在Luncher里面都没有了,而且这个APP的一切活动都将被终止。 也因此通过“管理空间”去调用这个被停用的APP的一个Activity是不可能找得到的。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...