我现在真的羡慕iOS开发程序员,他们既不用考虑应用升级,更不用处理机型适配这些令人头疼而无意义的问题。
——题记
本文将从以下几个方面详解Android开发版本更新及自定义通知的那些坑。
- Service下载文件要注意的小细节
- Android高版本通知图标无法显示(出现白框)
- 通知图标只能显示中间的一部分,无法显示完整
- 高版本通知提示无法在状态栏中显示
- 自定义通知文字颜色适配
Service下载文件要注意的小细节
国内Android应用市场繁杂,几乎没人使用Google Play下载和升级软件。所以,应用程序升级变成了每个APP开发者的任务。Android系统下载文件一般有三种方式:Activity中开启一个线程下载、利用系统DownloadManager下载和使用Service在后台下载。第一种方式下载时Activity无法关闭,使用起来非常不方便;系统提供的DownloadManager比较好用,开发者几乎不用考虑任何事情只需要提供下载链接就可以,但是DownloadManager的外观及细节实在做的太差。因此,大多数Android产品使用第三种下载方式——Service。
笔者在Service的onHandleIntent()方法中接收到MainActivity传入的下载链接,并使用HttpURLConnection进行文件下载,业务流程非常简单,此处不再赘述。
一个小细节:在MainActivity中应判断下载文件的Service是否运行,如果已经在下载则提示版本更新弹窗,一方面提高用户体验,另一方面防止Service被多次开启引发程序异常。
public boolean isWorked() {
ActivityManager myManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
ArrayList<ActivityManager.RunningServiceInfo> runningService = (ArrayList<ActivityManager.RunningServiceInfo>) myManager.getRunningServices(Integer.MAX_VALUE);
for (int i =