`
文章列表
 学习了ContentProvider,想做个通讯录,结果在Intent和getType(Uri uri)上卡住了,经过查找资料发现了问题的所在。在这里解释下getType(Uri uri)何时被调用,和android.intent.category.DEFAULT 的理解。      我们需要什么时候加android.intent.category.DEFAULT呢? 1、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。      Explicit Intent明确的指定了要启动的Acitivity ,比如以下 ...
一、ContentProvider的概念  ContentProvider:为存储和获取数据提供统一的接口。可以在不同的应用程序之间共享数据。Android已经为常见的一些数据提供了默认的ContentProvider  1、ContentProvider使用表的形式来组织数据   无论数据的来源是什么,ContentProvider都会认为是一种表,然后把数据组织成表格  2、ContentProvider提供的方法   query:查询   insert:插入   update:更新   delete:删除   getType:得到数据类型   onCreate:创建数据时调用的回调函数 ...
    最近在公司看一个算比较大的android项目的源码,发现了一个很严重的问题,就是项目里使用单例模式,构造函数要传入Context做参数的类,基本上都存在内存泄露问题。我想这个项目这么多人做也没有人发现问题,这问题应该会挺常见的,同时也挺严重的。        存在内存泄露问题的一些代码片段像下面这样: Util.java   public class Util {       private Context mContext;   private static Util sInstance;          private Util(Context context) ...
随着电子产品的飞速发展,广播电台几乎已经远离了人们的娱乐生活,但是近年来由于网络电台的兴起,广播电台又逐渐有了市场,手机上如果有一个网络电台软件,使用率应该是比较高的。目前的主流智能手机平台中,iphone ...
这几天一直在修改twigee的源代码,其中一个要加入的功能是常驻Notification栏,以前写的时候只能出现在“通知”这一组中,想把它放在“正在运行”组中却不知道怎么放,查了下官方文档,找到了方法,在notification的flags字段中加一下“FLAG_ONGOING_EVENT”就可以了。同时我也把Notification的使用方法给总结了一下。详见下文: (1)、使用系统定义的Notification 以下是使用示例代码: //创建一个NotificationManager的引用
private boolean isTopActivity(String packageName) {   System.out.println("**********************top packageName:" + packageName); ActivityManager activityManager = (ActivityManager) this .getSystemService(Context.ACTIVITY_SERVICE);   List<RunningTaskInfo> tasks ...
显示网页:   1. Uri uri = Uri.parse("http://www.google.com");   2. Intent it = new Intent(Intent.ACTION_VIEW,uri);   3. startActivity(it); 显示地图:   1. Uri uri = Uri.parse("geo:38.899533,-77.036476");   2. Intent it = new Intent(Intent.Action_VIEW,uri);   3. startActivity(it); 路径规划:   1. ...
刚才一个例子中用到了PendingIntent,与之前学过的Intent有些类似,所以百度了一下结合自己的理解做个整理:       Intent是一个意图,一个描述了想要启动一个Activity、Broadcast或是Service的意图。它主要持有的信息是它想要启动的组件(Activity、Broadcast或是Service)。        PendingIntent可以看作是对Intent的包装。供当前App之外的其他App调用。有点“被动”或是“Callback”的意思,但不是严格意义上的“被动”或是“Callback”。总之,当前App不能用它马上启动它所包裹的Intent。而是在 ...
AlarmManager.RTC,硬件闹钟,不唤醒手机(也可能是其它设备)休眠;当手机休眠时不发射闹钟。 AlarmManager.RTC_WAKEUP,硬件闹钟,当闹钟发躰时唤醒手机休眠; AlarmManager.ELAPSED_REALTIME,真实时间流逝闹钟,不唤醒手机休眠;当手机休眠时不发射闹钟。 AlarmManager.ELAPSED_REALTIME_WAKEUP,真实时间流逝闹钟,当闹钟发躰时唤醒手机休眠;   RTC闹钟和ELAPSED_REALTIME最大的差别就是前者可以通过修改手机时间触发闹钟事件,后者要通过真实时间的流逝,即使在休眠状态,时间也会被 ...
在宽width高height的画布上画一字符串,使字符串水平竖直居中: 水平居中很简单,paint.setTextAlign(Align.CENTER);然后drawText的x坐标设置为width / 2即可,竖直居中稍显麻烦,可以使用FontMetrics对象计算文字高度,然后计算baseline,使文字垂直居中,代码如下: Paint paint = new Paint(); paint.setColor(Color.BLUE); paint.setTextSize(18); paint.setTextAlign(Align.CENTER); FontMetrics fontMetrics ...
相信大家很多人跟我一样,对于编码一直感觉云山雾罩,说知道吧?就知道gb2312是中文编码,一看见乱码,就知道是编码出了问题,但是是哪儿出问题,为什么出问题,除了蒙,还是蒙。尤其是弄好了之后,有人问:为什么呢。自己也不知道,就说:反正就是这样的,用什么编码就用什么解码。为什么,鬼知道。  其实问题还是理解了之后,才能真正的明白为什么会这样,而且编码这个问题,也不是那么深奥,在网上搜索了一些资料,算是一直以来对编码问题的一个解决吧,最让人明白的资料有两个,第一个:http://www.cnblogs.com/KevinYang/archive/2010/06/18/1760597.html这个关于编 ...
在RenrenListenerFactory中,line 126 onPageStart的注释放开就行了。   放开后RenrenAuthListener中onComplete方法会被回调两次,这里的逻辑要做适当的处理。
最近在开发中需要用到图片bitmap的序列化并进行传递,发现bitmap是没有序列化的,下面是自己实现的一个序列化方法,分享下。----------------------------------------------------------------------------------------------------------import java.io.ByteArrayOutputStream;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics ...
初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因为我们处于这个狭小的天地间,与外界接触不够,所以对它们的存在茫然不知罢了。 下面我就 ...
接触了一些多线程的东西,还是从java入手吧。 相信看这篇文章的朋友都已经知道进程和线程的区别,也都知道了为什么要使用多线程了。 这两个方法主要来源是,sleep用于线程控制,而wait用于线程间的通信,与wait配套的方法还有notify和notifyAll. 区别一: sleep是Thread类的方法,是线程用来 控制自身流程的,比如有一个要报时的线程,每一秒中打印出一个时间,那么我就需要在print方法前面加上一个sleep让自己每隔一秒执行一次。就像个闹钟一样。 wait是Object类的方法,用来线程间的通信,这个方法会使当前拥有该对象锁的进程等待知道其他线程调用no
Global site tag (gtag.js) - Google Analytics