10 2012 档案

摘要:导读:获得用户之后,真正的战斗才刚打响,那就是留住用户,并通过他们最终获利。开发移动App 的童鞋,都会有这样一个问题:应用发出去了,就不可控了。用户手机上一堆的应用,有可能用户根本就忘记了我这个应用的存在,不怎么去使用,我有没有什么办法?我发布了新版本相信可以更吸引用户,但他也不知道啊;我想做个活动来激活用户更多地使用我的应用,怎么做到呢?提高活跃度的根本当然还在于产品本身,这一点是毋庸置疑的。正如有牛人总结说:互联网企业产品是唯一的核心。想必很多人了解,产品之外,运营也是非常重要的部分,甚至是更重要的部分。最近著名的移动应用统计供应商 Flurry 发表了一篇文章:移动应用经济的数学模型 阅读全文
posted @ 2012-10-30 11:49 water0504 阅读(244) 评论(0) 推荐(0)
摘要:WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:第一种方法的步骤:1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);2.调用WebView的loadUrl()方法,设置WevView要显示的网页:互联网用:webView.loadUrl("http://www.google.com");本地文件用:webView.loadUrl("file:///android_asset/XX.html&q 阅读全文
posted @ 2012-10-30 10:29 water0504 阅读(270) 评论(0) 推荐(0)
摘要:public static final int ELAPSED_REALTIME //当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时间,可以通过调用SystemClock.elapsedRealtime()获得。系统值是3 (0x00000003)。 public static final int ELAPSED_REALTIME_WAKEUP //能唤醒系统,用法同ELAPSED_REALTIME,系统值是2 (0x00000002) 。 ... 阅读全文
posted @ 2012-10-29 18:40 water0504 阅读(259) 评论(0) 推荐(0)
摘要:计时的几种方法,在虚拟机中不会出现问题,但是在真机测试中,会遇到这样一种情况: 在手机进行休眠状态后,原来的睡60秒时间,大约变成了睡7分钟左右才再执行.这一直让我很不解,也没有发现代码上有什么问题.后来发现别人也遇到了类似的问题. 发现常见的应用中,如游戏,播放器以及控制灯光显示中,都会有这种情况,后来通过找了一个资料才知道如果要定时执行的话,要用AlarmManager,这是闹钟服务,Android手机中必须要保证AlarmManager的时钟跟真实时间同步的.所以在 Android手机休眠状态下,AlarmManager时间是不会变慢的. 以下介绍AlarmManager的基本使用.Al 阅读全文
posted @ 2012-10-29 18:38 water0504 阅读(2165) 评论(0) 推荐(0)
摘要:A PendingIntent itself is simply a reference to a token maintained by the system describing the original data used to retrieve it. This means that, even if its owning application’s process is killed, the PendingIntent itself will remain usable from other processes that have been given it. If the cre 阅读全文
posted @ 2012-10-29 18:33 water0504 阅读(206) 评论(0) 推荐(0)
摘要:getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文this.getApplicationContext()取的是这个应 用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同 的,前者的生命周期是整个应用,后者的生命周期只是它所在的Activity。 阅读全文
posted @ 2012-10-29 18:30 water0504 阅读(164) 评论(0) 推荐(0)
摘要:This question is over a year old and is definitely long and complicated and the English language is difficult to understand. However, it still probably deserves some kind of answer.If I understand, you are basically asking for the difference between the different AndroidContextobjects. The main diff 阅读全文
posted @ 2012-10-29 17:47 water0504 阅读(1852) 评论(0) 推荐(0)
摘要:在Android中,申请WakeLock可以让你的进程持续执行即使手机进入睡眠模式,比较实用的是比如后台有网络功能,可以保证操作持续进行.方法: 在操作之前加入PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG); wakeLock.acquire(); 其中newWakeLock有两个参数,第一个参数定义了行为,第二个参数是调试的那个.. 阅读全文
posted @ 2012-10-29 17:42 water0504 阅读(558) 评论(0) 推荐(0)
摘要:PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。然后通过PowerManager的newWakeLock((int flags, Stringtag)来生成WakeLock实例。int Flags指示要获取哪种WakeLock,不同的Lock对cpu 、屏幕、键盘灯有不同影响。获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放 阅读全文
posted @ 2012-10-29 17:34 water0504 阅读(184) 评论(0) 推荐(0)
摘要:(1)[ 01-01 08:39:22.016 1228:0x4cd E/AndroidRuntime ]java.lang.Exception: WakeLock finalized while still held: My Tagat android.os.PowerManager$WakeLock.finalize(PowerManager.java:337)at dalvik.system.NativeStart.run(Native Method)WakeLock finalized while still held 表示 WakeLock对象在销毁时仍然被持有。因为我的Activi 阅读全文
posted @ 2012-10-29 17:33 water0504 阅读(456) 评论(0) 推荐(0)
摘要:需要配置的1.声明处理搜索的Activity<meta-data android:name="android.app.default_searchable" android:value=".OnSearchAppsList" />2.Activity定义<activity android:name=".OnSearchAppsList"android:configChanges="orientation|keyboardHidden|navigation"android:label="@ 阅读全文
posted @ 2012-10-20 16:10 water0504 阅读(497) 评论(0) 推荐(0)
摘要:注意事项:1, 存储过程参数不带取值范围,in表示传入,out表示输出2, 变量带取值范围,后面接分号3, 在判断语句前最好先用count(*)函数判断是否存在该条操作记录4, 用select 。。。into。。。给变量赋值5, 在代码中抛异常用 raise+异常名以命名的异常命名的系统异常 产生原因ACCESS_INTO_NULL 未定义对象CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置ELSE 时COLLECTION_IS_NULL 集合元素未初始化CURSER_ALREADY_OPEN 游标已经打开DUP_VAL_ON_INDEX 唯一索引对应的列上有 阅读全文
posted @ 2012-10-20 11:50 water0504 阅读(237) 评论(0) 推荐(0)
摘要:1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。2、什么时候需要用存储过程 如果服务器定义了存储过程,应当根据需要决定是否要用存储过程。存储过程通常是一些经常要执行的任务,这些任务往往是针对大量的记录而进行的。在服务器上执行存储过程,可以改善应用程序的性能。这是因为:.服务器往往具有强大的计算能力和速度。.避免把大量的数据下载到客户端,减少网络上的传输量。. 阅读全文
posted @ 2012-10-20 09:00 water0504 阅读(194) 评论(0) 推荐(0)
摘要:SpannableStringTextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置myTextView = (TextView) this.findViewById(R.id.myTextView); //创建一个 SpannableString对象 SpannableString sp = new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体."); //设置超链接 ... 阅读全文
posted @ 2012-10-19 17:24 water0504 阅读(2226) 评论(0) 推荐(0)
摘要:在Android中TextView和EditText是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。废话少说,直接上代码:package com.qzhousoft.SpannableDemo.ui;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.text.Spannable;import android.text.Sp 阅读全文
posted @ 2012-10-19 17:12 water0504 阅读(1757) 评论(0) 推荐(0)
摘要:在项目开发的过程中,同一个布局对应不同的手机会显示出不同的效果。导致这个现象产生的原因是不同手机的分辨率不同。在android sdk提供的帮助文档中,我们可以看到各种手机的分辨率和对应的屏大小。QVGA (240x320),WQVGA400(240x400),WQVGA432 (240x432),HVGA (320x480),WVGA800 (480x800),WVGA854 (480x854)。 目前android手机的分辨率大致就是帮助文档中描述的几种,我们可以用两种方式进行不同手机的适配。一种是在java代码中,另外一种是在xml文件中。具体使用哪种方式更有效更合适,要看具体的情况而. 阅读全文
posted @ 2012-10-19 17:10 water0504 阅读(1097) 评论(0) 推荐(0)
摘要:Android一个调试问题Log信息:[2010-10-25 17:31:43 - SQLite2] Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER[2010-10-25 17:31:43 - SQLite2] Please check logcat output for more details.[2010-10-25 17:31:44 - SQLite2] Launch canceled!原因:用户重复定义了Provider,产生了冲突。错误位置:在工程一的Androidmanifest中定义了 android:authori 阅读全文
posted @ 2012-10-19 16:04 water0504 阅读(1872) 评论(0) 推荐(0)
摘要:表格布局中每一行为一个TableRow对象,当然也可以是一个View对象。TableRow可以添加子控件,每添加个为一列。anroid:layout_column:控件在TableRow中所处的列android:layout_span:该控件所跨越的列数android:collapseColumns:将里面指定的列隐藏,若有多列需要隐藏,用逗号将列序号隔开。android:stretchColumns:设置指定的列为可伸展的列,该列会尽量伸展以填满所有可用的空间,若有多列需要设置为可伸展,需要用逗号隔开.示例:<TableLayout xmlns:android="http:/ 阅读全文
posted @ 2012-10-19 15:55 water0504 阅读(282) 评论(0) 推荐(0)
摘要:一:TableLayout是表格布局先上例子:定义一个xml布局文件tablelayout.xml:内容如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:l 阅读全文
posted @ 2012-10-19 15:52 water0504 阅读(837) 评论(0) 推荐(0)
摘要:Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。1.默认效果:代码:Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show();2.自定义显示位置效果:代码:toast = Toast.makeText(getApplicationContext(),"自定义位置Toast", Toast.LENGTH_LONG);toast.setGravit 阅读全文
posted @ 2012-10-19 15:44 water0504 阅读(172) 评论(1) 推荐(0)
摘要:这几天做项目,用到背景选择器,无论怎么弄,都没有效果,找了很多资料都没有找到,样式是这样的<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/title_new_normal"/> <item android:drawable="@d 阅读全文
posted @ 2012-10-19 15:20 water0504 阅读(480) 评论(0) 推荐(0)
摘要:最近做listview和button都要改变Android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。首先android的selector是在drawable/xxx.xml中配置的。先看一下listview中的状态:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。drawable/list_item_bg.xml<?xml version="1.0" encoding="utf-8&quo 阅读全文
posted @ 2012-10-19 15:17 water0504 阅读(159) 评论(0) 推荐(0)
摘要:通过使用RadioGroup的button属性后怎么让radiobutton 显示的图片居中.使用android:backgroud方法图片会变形。无奈使用android:drawableTop.但是该图片是靠右侧的。而网上说的android:button="@null"android:drawableTop="@drawable/rate_selector" 这个方法试过了,没用如下面的例子:<RadioButton android:id="@+id/radio_button3" style="@style/main 阅读全文
posted @ 2012-10-19 14:56 water0504 阅读(8454) 评论(0) 推荐(0)
摘要:context.getResources().getString(int id)或者getString(int id,Object ...obj) 阅读全文
posted @ 2012-10-19 14:51 water0504 阅读(215) 评论(0) 推荐(0)
摘要:Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。 LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。她可以有很多地方可以使用,如BaseAdapter的getView中,自定义Dialog中取得view中的组件widget等等。它的用法有2种:LayoutInflater inflater = LayoutInflater.from(thi 阅读全文
posted @ 2012-10-19 14:17 water0504 阅读(208) 评论(0) 推荐(0)