个人博客系统
Android通过Service和Messager实现不同进程间相互通信

相对于AIDL,以Messenger来完成不同进程之间的通信要更加简单,这种实现方式是基于AIDL的,但是我们无需再编写AIDL文件,并且该方式是线程安全的,所有发送出去的消息都会被存储在一个消息队列中被依次处理。

这里创建两个测试应用,分别为ServiceApp和ClientApp,在ClientApp中,点击按钮,给ServieApp发送消息,ServiceApp打印出消息,同时,给ClientApp答复一条消息,具体操作步骤。

1、首先在ServiceApp中新建一个Service,在Service中创建一个Handler,用来处理从客户端发来的消息,onBind方法中,返回持有Handler对象的Messager,代码如下:

1. SystemUI介绍

SystemUI是一个系统应用,主要功能有:

1)状态栏信息显示,比如电池,wifi信号,3G/4G等icon显示

2)通知面板,比如系统消息,第三方应用消息,都是在通知面板显示。

3)近期任务栏显示面板。比如长按主页或近期任务快捷键,可以显示近期使用的应用。

4)提供截图服务。比如电源+音量加可以截图。

Android Studio在已经建好的项目中搭建JNI环境

本文讨论的是在一个已经创建好的Android项目中通过添加JNI支持来使用C或C++代码,如果是新建项目,Android studio已经提供了简便的方式,只需要勾选 Include C++ Support 选项,便会自动给项目添加JNI环境,当然,前提是你已经安装了必要的组件,具体可以参考Android studio下JNI开发


Android studio下JNI开发

使用Android Studio, 你可以将CC++代码编译成本地库并打包到应用当中。之后你的Java代码便可以通过JNI来调用本地库中的函数,可以浏览 JNI tips for Android

Android Studio中默认使用CMake作为本地库的编译器,同时也支持NDK编译方式, 如果你想导入一个已经通过NDK编译好的本地库,可以参考 

本文将会介绍如何通过Android studio来创建和配置Android JNI 项目,以及将它部署到你的应用当中。

Android studio 鼠标移到一个类或者方法上面,不会和Eclipse一样出现对应的文档提示,而是一直显示可能出现XXX异常或者错误,真的很烦

Method invocation 'setOnClickListener' may produce 'java.lang.NullPointerException'  

如下操作可以关闭该提示:

Android通过XmlSerializer和XmlPullParser操作xml文件

Android内置了Pull解析器,Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是, Pull解析器产生的事件是一个数字,而非方法,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值。

private static final String XML_NAME = "test.xml";

//创建xml
public static void createXml(Context context) throws Exception{
    //获取输出流
    FileOutputStream fos = context.openFileOutput(XML_NAME, Context.MODE_PRIVATE);
    //通过Xml类的静态方法newSerializer获取到一个XmlSerializer
    XmlSerializer se

使用Maven更新jar包,下不动了直接强制退出eclipse,再打开就出现这个错误了。

An internal error occurred during: "reload maven project". java.lang.NullPointerException

网上找到的解决方法:

在Eclipse的默认workspace的.metadata目录下搜索workbench.xmi文件,打开,搜索找到包含<tags>org.eclipse.e4.primaryDataStack</tags>的<sharedElements></sharedElements>,将其删除然后保存 ,重启eclipse。

Android6 SdkVersion 23下checkSelfPermission方法的使用

环境:Android studio 2.2.1、compileSdkVersion 23、buildToolsVersion "24.0.3"

Android6 SdkVersion 23,app将不会在安装的时候授予权限。取而代之的是,app不得不在运行时一个一个询问用户授予权限。

但是需要注意的是权限询问对话框不会自己弹出来。开发者不得不自己调用。如果开发者要调用的一些函数需要某权限而用户又拒绝授权的话,函数将抛出异常直接导致程序崩溃。另外,用户也可以随时在设置里取消已经授权的权限。

下面用一个简单的拨号列子来说明:

环境:bootstrap v3.3.0

文章图片显示限制宽度最大为内容区宽度,上传几张分辨率大点的图片,显示的就不够清楚了,网上找了下jQuery的插件,弄了几个试了试不是特别满意,决定自己来实现这个功能,做个最简单的就行。

需求:点击文章内容里的图片,弹出并显示该图片预览,图片宽度如果小于当前浏览器可见宽度,则显示图片完整大小,如果大于浏览器可见宽度,则显示为浏览器可见宽度大小。还是直接截个图吧,下面这种效果:

使用ueditor.uparse,内容包含“无序列表”后导致页面错乱

环境:ueditor1.4.3.3Jsp版本

博客后台使用的是ueditor富文本编辑器,为了让前端更好的展示网页内容,使用了ueditor自带的ueditor.uparse.min.js,先看下官网的说明:

uparse的作用

它会根据内容展示内容,动态的在你的展示页中加入css代码,比如你的编辑数据中有表格,那就会加入一些表格的css样式,如果有图表数据,会调用相关的js插件,解析数据成为图表等。

今天发布出去后发现网页显示错乱了,看了下,发现是因为ueditor.uparse.min.js这个东西解析网页内容时,使用了li{clear:both;},将整个网页中li样式都清除了,解决办法是在li{clear:both;}前面加一个选择器,

网站公告
这里是挨踢农民工的博客,欢迎光临,以上为一段测试信息。
生命在于折腾
博客分类
文章归档 更多
网站统计
当前在线人数:30
注册会员数:108
网站总浏览量:161874
文章总数:17
留言总数:9
评论总数:21
分类总数:6
友情链接总数:1