关于android6.0开发奇葩问题(收集中)

来源:互联网 发布:捕鱼 机器人算法 编辑:程序博客网 时间:2024/05/22 01:33

1:关于无法获得内存文件和数据

在做文件管理器时,发现无法读取内置sd卡的数据,同时无法查询数据库中数据!

后来发现是API 23 的办法,于是在手机设置中打开权限,一切搞定!



2:关于ActionMode startActionMode=null问题:

为了兼容权限问题,将版本基于22开发,然后修改了v7 v4  v13 的版本为22,交付测试后发现,ActionMode不停的报空指针异常,所以就尝试将版本基于21开发,然后修改v7 v4 v13为21的本版,一切正常,目前不知道时何原因,在查看源码时发现!

public ActionModeon  WindowStartingActionMode(ActionMode.Callback callback) {

initWindowDecorActionBar();

if(mActionBar!=null) {

returnmActionBar.startActionMode(callback);

}

return null;

}


返回值为空,于是查看了initWindowDecorActionBar();

private void  initWindowDecorActionBar() {

Window window = getWindow();

// Initializing the window decor can change window feature flags.

// Make sure that we have the correct set before performing the test below.

window.getDecorView();

if(isChild() || !window.hasFeature(Window.FEATURE_ACTION_BAR) ||mActionBar!=null) {

return;

}

mActionBar=new WindowDecorActionBar(this);

mActionBar.setDefaultDisplayHomeAsUpEnabled(mEnableDefaultActionBarUp);

mWindow.setDefaultIcon(mActivityInfo.getIconResource());

mWindow.setDefaultLogo(mActivityInfo.getLogoResource());

}

加粗文字处,方法调用到加粗文字处返回,所以初始化失败,导致WindowStartingActionMode返回为空,后发现!window.hasFeature(Window.FEATURE_ACTION_BAR)为true导致返回,具体原因还是无法了解!

2016.8.25 Update

依旧关于actionmode问题,在进行迭代更新时,我们需要添加新的界面,原界面长按事件一直使用的actionmode进入编辑界面!

于是想着新的界面也使用ActionMode进行退出,保存界面一致,在5.0以及5.1中并无任何问题,以为没问题,结果使用6.0系统的手机时发现标题头界面出现闪烁问题,最后分析发现是当推出新界面时,ActionMode被销毁,导致后面背景界面显示导致,但是在开始写的时候,已经想过这种问题,所以已经处理!所以5.0和5.1并无问题,最后发现是6.0显示actionMode的问题!

解决方案: 去掉ActionMode,自己写一个返回标题头!




0 0
原创粉丝点击