- 浏览: 599329 次
- 性别:
- 来自: 上海
-
最新评论
-
u012136165:
list 方法:纠正:[2,5].add(1,9) ...
Groovy的list和map -
bruce.yuan:
误人子弟的文章。已经看到N个人转了这个帖子,这要贻害多少新人啊 ...
理解并解决GBK转UTF-8奇数中文乱码 -
思念-悲伤:
特意登录上来,感谢下!
理解String的compareTo()方法返回值 -
bo_hai:
总结的好,有效。
理解String的compareTo()方法返回值 -
u012678420:
在onCreate方法中获取某个View的宽度和高度
文章列表
高效率下载图片——防止内存溢出
- 博客分类:
- Android
在应用中经常需要下载很多的图片,因此,写好图片下载部分的代码非常关键。不好的代码很容易创建太多的对象,导致经常执行GC,接着就出现了ANR;也很容易导致内存溢出OOM。
现在,我从防止ANR和OOM的角度写下载图片的代码。再来分析一下需求,当我需要为图片列表下载很多张图片时,我期望图片是有顺序地一张一张显示,而不是开启很多线程同时下载多张图片(注意:这样也会影响每个线程的执行速度)。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util ...
PopupWindow使用
- 博客分类:
- Android
使用PopupWindow来显示一个浮层
点击按钮后弹出浮层
public class PopupWindowDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup_window_demo);
findViewById(R.id.popup_window ...
private void showNotification() {
Intent intent = new Intent(this,MyNotificationView.class);
PendingIntent contentIntent = PendingIntent.getActivity(this,0, intent, 0);
//在Status Bar显示的图片、 Ticker文本、通知时间
Notification notification = new Notification(R.drawable.icon,"通知来了",Syste ...
AlarmManager.RTC,硬件闹钟,不唤醒手机(也可能是其它设备)休眠;当手机休眠时不发射闹钟。
AlarmManager.RTC_WAKEUP,硬件闹钟,当闹钟发躰时唤醒手机休眠;
AlarmManager.ELAPSED_REALTIME,真实时间流逝闹钟,不唤醒手机休眠;当手机休眠时不发射闹钟。
AlarmManager.ELAPSED_REALTIME_WAKEUP,真实时间流逝闹钟,当闹钟发躰时唤醒手机休眠;
RTC闹钟和ELAPSED_REALTIME最大的差别就是前者可以通过修改手机时间触发闹钟事件,后者要通过真实时间的流逝,即使在休眠状态,时间也会被计 ...
经常会有这样的需求,当手机开机后立刻启动一个服务或者一个活动。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class AutoStartReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
...
大家都知道Android的上层应用是基于 Dalvik Virtual Machine的。Dalvik VM的特点是基于寄存器,相比SUN的JVM(基于堆栈,没有寄存器)来说,理论上完成同样的功能需要的指令条数少,但是指令集复杂。到了Android2.2,Dalvik终于实现了JIT(Just In Time)功能,前进了一大步。
近期我们遇到OutOfMemory的错误,通常是堆内存溢出。网上有些帖子说可以通过函数设置应用的HEAP SIZE来解决这个问题,其实是不对的。
VMRuntime.getRuntime().setMinimumHeapSize(NewS ...
Android中有Context的概念,有了Context就可以做很多事情,如打开activity、发送广播、打开文件夹和数据库、获取
classLoader、获取资源等等。
那么能获取到手机上其他应用的Context吗?
能!有了其他应用的Context,几乎就可以做其他应用能做的任何事。
示例:
下面这个类是手机上的某个应用
package com.example;
import android.app.Activity;
import android.util.Log;
public class InvokedActivity exten ...
使用PowerManager.WakeLock来保证程序运行时保持手机屏幕的恒亮。
public class WakeLockDemo extends Activity {
private PowerManager.WakeLock wakeLock = null;
//获取锁
public void acquireWakeLock(Context context) {
if (wakeLock == null) {
PowerManager powerManager = (PowerManager)(c ...
效果图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_par ...
使用ExpandableListView
- 博客分类:
- Android
效果图
Group右边的图标是Android系统自动加上的默认图标
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
...
AsyncTask的使用
- 博客分类:
- Android
AsyncTask是个抽象类,因此需要创建继承它的具体类。具体类必需实现doInBackground()抽象方法,这是AsyncTask唯一的抽象方法。很多具体类也常会重写onPostExecute()方法,用来处理执行结果。
使用AsyncTask可以使代码清析整洁,它将工作线程代码与UI线程代码分离。
示例:
/*
AsyncTask的三个泛型参数说明(三个参数可以是任何类型)
第一个参数:传入doInBackground()方法的参数类型
第二个参数:传入onProgressUpdate()方法的参数类型
第三个参数:传入onPostExecu ...
OnScrollListener回调分析
- 博客分类:
- Android
new OnScrollListener() {
boolean isLastRow = false;
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//滚动时一直回调,直到停止滚动时才停止回调。单击时回调一次。
//firstVisibleItem:当前能看见的第一个列表项ID(从0开始)
//visibleItemCount:当前能看见的列表项个数(小半个也算)
/ ...
Android Service分析
- 博客分类:
- Android
package com.improve.service;
import java.util.Random;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
/**
* 因为Service由主线程执行,耗时操作应该创建独立线程
* @author Davee
*/
public class AnalysedService exte ...
GPS定位基本原理浅析
http://www.fengfly.com/plus/view-193595-1.html
GSM蜂窝基站定位基本原理浅析
http://www.fengfly.com/plus/view-193596-1.html
AGPS定位基本原理浅析
http://www.fengfly.com/plus/view-193597-1.html
Wi-Fi定位技术
http://blog.sina.com.cn/s/blog_5c57b5190100fgzz.html
#知识扩展
3G
http://baike.baidu. ...
在Web开发中,经常会在jsp中include子jsp。这样做的好处是多个页面相同部分不需要写多次,便于开发和维护。
在Android的布局中也有类似的功能
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height=" ...