Android面试及使用技术点总结

来源:互联网 发布:哈萨克斯坦知乎 编辑:程序博客网 时间:2024/04/28 09:59

1、怎样安全退出调用了多个Activity的Application?

1)抛异常强制退出
通过抛异常,使程序Force Close
2)记录打开的Activity
每打开一个,记录下来。需要退出时,关闭每一个
3)发送广播
在需要结束时,发送广播,每个Activity接收关闭
4)递归推出
新打开Activity时使用startActivityForResult(),添加标志,在onActivityResult中处理,递归关闭
5)写一个Activity基类来控制(推荐)

2、Activity样式设置

android:theme=”“@android:style/Theme.Dialog 窗口
android:theme=”“@android:style/Theme.Translucent 半透明

3、Android的数据存储方式

1)SharedPreference方式
2)文件存储方式
3)SQLite
4)Content Provider
5)网络存储

4、Android常用布局

1)RelativeLayout
2)LinearLayout
3)FrameLayout
4)TableLayout
5)AbsoluteLayout

5、从Activity A启动Activity B,当Activity B时怎么返回Activity A?

如果Activity A被系统回收,会自动通过onSaveInstanceState()来保存状态,当从B返回A,会启用A的含有saveInstanceState参数的onCreate()方法
如果Activity没有被系统回收,则调用onResume()方法

6、Content Provider如何实现数据共享

创建一个自己的Content Provider或者将数据放到已经存在的Content Provider,前提是要拥有相同的数据类型与写入的权限。

7、如何将SQLite数据库(.db文件)与apk文件一起发布?

可以将.db文件复制到res aw目录中,所有在res aw目录中的文件不会被压缩,可以直接提取。

8、如何打开res aw目录中的数据库文件?

并不能直接打开,需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中。然后再打开该数据库文件。
复制的基本方法是使用getResource.openRawResource方法获得res aw目录中资源的InputStream对象,然后将该InputStream对象中的数据写入其他目录中相应文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。

0 0