android 零碎

1、定义为static的变量在activity调用onDestroy()方法结束后还保存在内存中!可能会影响接下来的启动运行!注意了!

2、程序中有多个activity在其中一个中退出整个程序:http://blog.youkuaiyun.com/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.youkuaiyun.com/liaoxingliao/article/details/7168500
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值