1、定义为static的变量在activity调用onDestroy()方法结束后还保存在内存中!可能会影响接下来的启动运行!注意了!
2、程序中有多个activity在其中一个中退出整个程序:http://blog.csdn.net/tangfeidd/archive/2011/03/04/6222358.aspx
3、activity和service直接通信:
Activity调用Service用IBinder,Service向Activity发送消息则可借助于BroadcastReceiver。
参考:http://zhangyan1158.blog.51cto.com/2487362/491358
4、Service中用BroadcastReceiver给Activity发送广告,这是因为BroadcastReceiver定义在Activity的内部所以不能用静态注册法,即不能再Androidmanifest.xml中注册,要在Service中使用时动态注册。当BroadcastReceiver时内部类时,只能通过代码注册的方式注册。但内部类可以直接与Activity交互,比较方便。
5、在一个Service中启动一个Activity的方法:http://aijiawang-126-com.iteye.com/blog/953564
Intent intent = new Intent(this,Test.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);
6、Android中在绘图中的多线程中,invalidate和postInvalidate这两个方法是用来刷新界面的,调用这两个方法后,会调用onDraw方法,让界面重绘。
7、ProgressBar,长时间加载时很需要,默认让它不显示。在长时间等待时显示它,加载完成后隐藏,但一直想不明白的是实例化ProgressBar后用logining.setVisibility(View.GONE);它还是不隐藏。很郁闷,不知道什么原因。我现在是在ProgressBar的外面套了一个LinearLayout,现在直接隐藏LinearLayout。
<LinearLayout android:id="@+id/main_not_login" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ProgressBar android:id="@+id/main_login_progress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone"/> </LinearLayout>
8、Java SoftReference弱引用,可以存储一些图片等数据,在机子内存不够时机子会优先释放这些内存资源。SoftReference<Drawable>
参考:http://hi.baidu.com/newton111/blog/item/24cc900a7b494034b1351d8d.html
9、如何将一个layout配置文件转换为一个View:
LayoutInflater mInflater = LayoutInflater.from(Detect.this); View head = mInflater.inflate(R.layout.head, null);
10、一个应用程序中启动另一个应用程序:
Intent intent=new Intent(); intent.setComponent(new ComponentName("com.infoquic.cardetect","com.infoquic.cardetect.Detect")); startActivity(intent);
第一个是要启动的程序的包名,第二个是要启动的程序的主Activity名。
10,Widget中点击图标,启动一个新应用:
Intent intent=new Intent(); intent.setComponent(new ComponentName("com.infoquic.cardetect","com.infoquic.cardetect.Detect")); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent imagePending=PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.widget_warning, imagePending);
11、Android工程中引入第三方Jar包,正确的导入顺序:
导入工程的jar通过 add User Library方式导入
右键工程->build path->add Library->user Library->user Libraries->new->随便取个名字->add JARs->ok
添加过程中记得将 user systemLibrary选中
不然会出现Unable to execute dex: Java heap space 这个问题
12、GirdView调整元素之间的间隔,
关键代码:
<GridView android:id="@+id/grid" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:horizontalSpacing="50dp" android:verticalSpacing="50dp" />
参考:http://www.iteye.com/topic/663177
13、Android背景选择器(selector)要注意顺序,负责没有效果:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/icon_button_kill" /> <item android:drawable="@drawable/icon_button_kill_pressed" /></selector>
14、广播里面启动一个Service,比如开机启动一个服务等。
Intent service = new Intent(mContext, CarService.class); mContext.startService(service);
15、layout_gravity不起作用了
在linerlayout布局中,如果方向设为垂直,layout_gravity=center_vertical就不起作用,需在每个child中设置android:gravity="center_vertical"
水平方向类似。
16、OOM
http://651356806-qq-com.iteye.com/blog/1123321
http://blog.csdn.net/liaoxingliao/article/details/7168500