现在的位置: 首页 > 综合 > 正文

面试问题及解答

2017年12月24日 ⁄ 综合 ⁄ 共 1762字 ⁄ 字号 评论关闭

(1)Activity的生命周期?

(2)如何让activity变成一个窗口?

(3)后台的Activity被系统回收怎么办?

(4)intent的工作机制?

(5)Java中如何引入C语言?

(1)onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy().后面三个都有可能干掉activity.
(2)在AndroidManifest.xml中定义Activity的主题属性。android:theme="@android:style/Theme.Dialog"(Theme.Dialog窗口属性,Theme.Traslucent半透明属性)
(3)如果没有被回收,调用onResume();若已被回收,调用onCreate(),并带上参数savedInstanceState。
(4)扔出意图:
        Intent intent=new Intent();
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:15901902674"));
        startActivity(intent);
  确定接收者:
a.显式
        Intent intent=new Intent(this,MainActivity.class);
        intent.getExtras().putString("id", "1");
        startActivity(intent);
        MainActivity为接收者,并添加附加信息。MainActivity通过getIntent()获取intent和数据。
        b.通过AndroidManifest.xml的intentfilter进行配置.
  总之,调用一个新的界面不是直接new,而是扔出一个intent,让系统帮你调用。
(5)通过调用JNI接口.

(1)Activity和Task的启动模式launchMode有哪些?含义是什么
(2)Android应用的入口点?
(3)如何退出Activity?如何安全退出已调用多个Activity的Application?
(4)ContentProvider是如何实现数据共享的?
(5)如何启用service?如何停用Service?
(6) AIDL的全称是什么?如何工作?能处理哪些类型的数据?

(1)有4种activity的启动模式,分别为:standard(默认),singleTop,singleTask,singleInstance
standard  每次都会新建,每个Task都可以有,且每个Task都可以有多个实例(每个Task都可以有,且可以有多个)
singleTop 当前实例如果在栈顶,就不新建实例,调用其OnNewIntent。 如不在栈顶,则新建实例 (每个Task都可以有,且可以有多个,在栈顶时可复用)
singleTask 新建一个Task,如果已经有其他的Task并且包含该实例,那就直接调用那个Task的实例。(只有一个Task中会有)
singleInstance 新建一个Task,且在该Task中只有它的唯一一个实例。 (只有一个Task会有,且该Task中只有它)
(2)真正的Android入口点是application的main,androidmanifest.xml可以没有Activity但是必须有Application。
(3)单一Activity,调用finish(),或system.exit().
 a.发送特定广播,每个acvivity收到广播后退出
 b.记录打开的activity,退出时关闭每个activity
 c.抛异常,强制关闭退出。
(4)实现ContentProvider接口实现数据共享,外界程序可以通过ContentResolver访问ContentProvider提供的数据。
(5)启动:Context.startService() and Contect.bindService()
   停用:Context.stopService() Service.stopSelf()
(6)AIDL全称Android Interface Definition Language

抱歉!评论已关闭.