Doublemine

  • 首页

  • 标签

  • 归档

  • 关于

当Android应用被强杀之后

发表于 2016-09-10 | 更新于 2019-07-03 | 分类于 Android | 评论数: | 阅读次数:

Android应用在后台运行的时候很容易被强杀,尤其是在国内XX助手、XX管家、XX大师之类的应用大行其道之下。如果我们开发的应用没有被用户加入白名单,很大程度上会被系统因为内存不足或者用户主动给应用在后台运行的时候杀掉。这个时候问题就来了:

  • 如何保证我们的应用在被强杀之后用户再次回到应用来保证应用的稳定性而不Crash?

为了说明上述问题,我们来简单模拟这样一个过程:

APP –> ActivityA –> ActivityB –>ActivityC –> Pressed Home

假设APP在Activity C页面用户按下Home键应用退到后台运行。这个时候启动DDMS,选中该APP的进程,Kill。然后我们从运行APP历史列表中选中该APP并将其置于前台,这个时候回到该应用的界面还是Activity C。再点击返回按钮回到ActivityB,在某些性能比较差一点的机器上可能会出现短暂的黑屏然后才会显示出ActivityB。这是因为该Activity实例其实在Kill该APP进程的时候已经被销毁了,但是Android系统虽然销毁了Activity实例,却并没有销毁该APP的Activity栈。因此我们点击返回按钮还是会回到ActivityB。但是需要重新构建该ActivityB的实例。

这样看貌似并没有什么问题,然而事情并不会这么简单(废话,不然我写这篇博客干嘛。。),如果ActivityB中引用了静态变量并尝试获取其值的时候,这个时候是会出现NPE的。

阅读全文 »

Android之Keystore文件签名

发表于 2016-07-03 | 更新于 2019-07-03 | 分类于 Android | 评论数: | 阅读次数:

Android应用开发的时候会经常使用到第三方SDK,例如地图、推送、支付以及分享等。而这些第三方服务SDK为了应用不被滥用都会有签名验证机制。我们通过上传Android应用的签名来在服务端配置以验证应用的合法性。本文将讲述下在Android Stduio中常用的签名操作。

默认KeyStore

默认KeyStore存储路径

在Android Stduio中系统默认内置了一个签名文件debug.keystore,用于我们在debug下的默认App签名。如果没有在Gradle文件中特殊指定,那么Android Studio将自动使用默认的debug.keystore文件为项目App生成Debug版本的签名。

阅读全文 »

RxJava、Retrofit接收Error Response Body

发表于 2016-07-02 | 更新于 2019-07-03 | 分类于 Android | 评论数: | 阅读次数:

RxJava配合Retrofit能够大大简化Android项目中的网络请求代码量,使得逻辑更清晰,当然也可能会遇到一些问题。下面给出一种问题的解决方案。

需求

一个基本的RxJava配合Retrofit以及Lambda的网络调用看起来像这个样子的:

1
2
3
4
5
6
7
8
9
10
11
12
13

Subscription subscription = mApi.getSimpleApi()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {

//do Something

}, throwable -> {

//Ops Error

});

当Retrofit中的网络请求返回码状态码为200时,执行do Something中的逻辑处理正常的
业务流程,但是当服务器返回状态码为非200时,将会执行Ops Error中的业务流程而不会
执行do Something中的业务逻辑。

阅读全文 »

为NexT主题添加文章阅读量统计功能

发表于 2015-10-21 | 更新于 2019-07-03 | 分类于 Hexo | 评论数: | 阅读次数:

前言


由于最近在折腾Android项目,需要用到一些与服务器交互、以及数据存储的相关功能,然后发现了LeanCloud这家服务提供商,使用下来还感觉还挺靠谱的(请给我广告费)。正好发现他们服务提供了JavaScript SDK,于是就想着尝试着实现Hexo博客文章的浏览数统计功能,之前虽然在使用不蒜子,但是不蒜子不能够在主页展示文章阅读量啊!对于博主这种有强迫症又想装X的人来说果断不能忍啊!

修改NexT主题模版

本方法理论上对Hexo博客通用,由于博主使用的是NexT主题,所以当然针对NexT来说咯。NexT主题目前已经合并这个Feature,因此如果你使用的是NexT主题,可以直接使用不用修改主题模版而直接在_config.yml中配置即可,请直接跳转查看配置LeanCloud

阅读全文 »

Create a Simple Android Keyboard

发表于 2015-09-04 | 更新于 2019-07-03 | 分类于 Android | 评论数: | 阅读次数:

前言

  由于最近做的一个Android项目需要用到用户的输入一些字符,常规的输入法输入非常的不方便。因此有必要自定义一个输入法来完成这个过程。此处给出一个简单的输入法Demo
来帮助理解自定义输入法的一些实现过程。

  • 有关输入法的一些说明,请参见:Create a Android IME
阅读全文 »
1…345…7
夏末

夏末

Keep fucking the world

35 日志
8 分类
43 标签
RSS
Twitter Instagram GitHub
Creative Commons
友情链接
  • Kevin
  • kisence
© 2015 — 2019 夏末
主题 — NexT.Muse
0%