Android相关面试题记录

此文章不定时更新,记录面试过程中遇到的相关问题

1.activity的启动模式有几种?分别是什么?

    4种

 standard:默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
singleTop:如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
singleTask:只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。如果是在别的应用程序中启动它,则会新建一个task,并在该task中启动这个Activity,singleTask允许别的Activity与其在一个task中共存,也就是说,如果我在这个singleTask的实例中再打开新的Activity,这个新的Activity还是会在singleTask的实例的task中。
singleInstance:只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。

2.请用代码写出一个接口回调的例子

public class A implements View.OnClickListener{
   private OnRecyclerViewItemClickListener mOnItemClickListener = null;

   public interface OnRecyclerViewItemClickListener {
       void onItemClick(View view, int data);
   }

   @Override
   public void onClick(View v) {
       if (mOnItemClickListener != null) {
           //注意这里使用getTag方法获取数据
           mOnItemClickListener.onItemClick(v, (Integer) v.getTag());
       }
   }

   public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
       this.mOnItemClickListener = listener;
   }
}

然后在B类中实现具体操作

public class B{
    A a = new A();
    a.setOnItemClickListener(){
    //各种噼里啪啦的操作
    }
}

3.ScrollView嵌套RecyclerView会有什么问题?怎么解决?

ScrollView中嵌套了几个RecyclerView,会导致滑动RecyclerView没有惯性效果
解决办法:重写LayoutManager,设置canScrollVertically属性为false
eg:
        layoutManager = new GridLayoutManager(this, 2, LinearLayoutManager.VERTICAL, false){
            @Override
            public boolean canScrollVertically() {
                return false;
            }
        };

4.Android5.0,6.0,7.0的特性

Android 5.0:

Material Design;
Dalvik改为ART,提高启动效率

Android 6.0:

TextInputLayout新控件;
运行权限管理;
增加大量动画;
支持raw格式照片
用httpURLConnection来替代httpclient

Android 7.0:

分屏多任务
通知栏快速回复

5.内存泄漏跟内存溢出的区别

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。

内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

memory leak会最终会导致out of memory!

你可能感兴趣的:(Android相关面试题记录)