Android 基础常见记录

1.隐藏标题栏,必须放在setContent前面执行
requestWindowFeature(Window.FEATURE_NO_TITLE);

2.重写onBackPressed(),用于监听返回按钮的事件

3.活动被回收了怎么办??
重写onSaveInstanceState()方法,把需要保存的数据放与Bundle对象中,当活动重新创建onCreate()时,
通过onCreate中的saveInstanceState参数得到活动销毁前的数据,然后再对数据进行处理。

4.活动的启动模式
a.standard-标准模式,启动每个活动时都会进栈,严格的遵守后进先出的规则
b.singleTop-栈顶模式,当活动处于栈顶时,再次启动栈顶活动,则不会创建新的活动。而是重用栈顶活动。
解决了重复利用栈顶活动的问题。
c.singleTask-单一任务模式,每次启动该活动系统首先在返回栈中检查是否存在该活动的实例,如果存在则直接使用,并把在这个活动之上的所有活动统统出栈。
如果没有发现就会创建一个新的活动实例。
d.singleInstance-单实例模式,该模式会启动一个新的返回栈来管理这个活动。该模式比较复杂,可以解决其他程序和我们的程序共享这个活动的实例。

5.AlertDialog对话框的使用
AlertDialog.Builder dialog = new AlertDialog.Builder(Context);
dialog.setXXX();

6.浅谈layout_weight属性。
比重是先适配其指定尺寸,再把剩余的尺寸按比重分配。

7.dp,sp,px,pt,dpi
dp 密度无关
sp 可伸缩像素
px 像素
pt 磅数
dpi表示的是屏幕密度的单位
当屏幕密度为160dpi时,1dp = 1 px。即像素为320*480,2*3英寸的屏幕

8.动态加载碎片fragment
MyFragment fragment = new MyFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTranction();
transaction.replace(R.id.XX,fragment);//碎片需要放置的id
transaction.commit();
a.创建待添加的碎片实例
b.获取到FragmentManager,在活动中直接调用getFragmentManager()方法得到
c.开启一个事务,通过调用beginTransaction()方法开启
d.向容器内加入碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例
e.提交事务,调用commit()方法来完成。

9.碎片与活动之间的通信
活动获取碎片实例:MyFragment fragment = getFragmentManager().findFragmentById(R.id.xx);

10.监听网络动态
先获取网络连接管理器:ConnectivityManager connManager = getSystemService(Context.CONNECTIVITY_SERVICE);
通过管理器得到NetworkInfo实例:NetworkInfo networkinfo = connManeger.getActiviteNetworkInfo();
通过实例即可判断网络状态。networkinfo.isAvailable();…

11.广播,无序广播,有序广播。广播接收器,动态注册(灵活性高),静态注册。
静态注册:开机自启动的实现,静态注册,添加权限




<user-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

12.本地广播,此类广播无法通过静态注册的方式来接收。此类广播避免了数据的泄露,以及安全漏洞等问题。主要是通过LocalBroadcastManager来对广播进行管理。
LocalBraodcastManager localBraodcastManager = LocalBraodcastManager.getInstance(*);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(“action”);
LocalReceiver localReceiver = new LocalReceiver();//自定义广播接收器
localBraodcastManager.registerReceiver(localReceiver,intentFilter);//通过localBraodcastManager来注册、注销(省略)本地广播

Intent intent = new Intent("action");
localBraodcastManager.sendBroadcase(intent);//通过localBraodcastManager来发送本地广播

13.文件存储
a存储
FileOutputStream out = openFileOutput(“file_name”,Cotext.MODE_PRIVATE);
BufferedWriter write = new BufferdWrite(new OutputStreamWriter(out));
write.write(“need_save_data”);
b读取
FileInputStream fis= openFileInput(FILE_NAME);//打开输入流
ByteArrayOutputStream out = new ByteArrayOutputStream();//字节数组输出流
//更高效的读取数据
byte[] buffer = new byte[1024];//缓存
int size;
while(-1!=(size = fis.read(buffer))){
out.write(buffer,0,size);//写到字节数组中
String line = new String(buffer, 0, size);
}
fis.close();
byte[] data = out.toByteArray();
String text = new String(data);

14.通知的创建步骤:
NotificationManager

15.Serializable和Parcelable的用法及区别:
Serializable 表示将一个对象转换成可存储或可传输的状态,序列化后,对象可以在网络上进行传输,也可以存储到本地
Parcelable 是将一个完整的对象进行分解,分解后的每一部分都是Intent所支持的数据类型
重写describeContents()和writeToParcel
提供一个名为CREATOR的常量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值