• android 开发不常用技巧集


    1.删除app指定名数据库

    context.deleteDatabase("name.db");

    2.Application 监听所有activity生命周期,可实现统一添加返回按钮等操作

    registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
    @Override
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
    //这里全局给Activity设置toolbar和title,你想象力有多丰富,这里就有多强大,以前放到BaseActivity的操作都可以放到这里
    if (activity.findViewById(R.id.toolbar) != null) { //找到 Toolbar 并且替换 Actionbar
    if (activity instanceof AppCompatActivity) {
    ((AppCompatActivity) activity).setSupportActionBar((Toolbar) activity.findViewById(R.id.toolbar));
    ((AppCompatActivity) activity).getSupportActionBar().setDisplayShowTitleEnabled(false);
    } else {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    activity.setActionBar((android.widget.Toolbar) activity.findViewById(R.id.toolbar));
    activity.getActionBar().setDisplayShowTitleEnabled(false);
    }
    }
    }
    if (activity.findViewById(R.id.toolbar_title) != null) { //找到 Toolbar 的标题栏并设置标题名
    ((TextView) activity.findViewById(R.id.toolbar_title)).setText(activity.getTitle());
    }
    if (activity.findViewById(R.id.toolbar_back) != null) { //找到 Toolbar 的返回按钮,并且设置点击事件,点击关闭这个 Activity
    activity.findViewById(R.id.toolbar_back).setOnClickListener(v -> {
    activity.onBackPressed();
    });
    }
    }

    ...

    });

    3.通过View获取Activity.

    public static @NonNull Activity getActivity(View view) {
      Context context = view.getContext();

      while (context instanceof ContextWrapper) {
      if (context instanceof Activity) {
        return (Activity) context;
      }
      context = ((ContextWrapper) context).getBaseContext();
    }

    throw new IllegalStateException("View " + view + " is not attached to an Activity");
    }

    4.通过Maven中央库添加第三方jar包的时候,出现了重复加载jar包的问题,解决办法很简单去掉一个不让它去加载就OK了。例如:

    compile ('in.srain.cube:cube-sdk:1.0.42.1'){
       exclude module: 'support-v4'
    }
    compile ('com.taobao.android:alisdk-hotfix:2.0.9') {
    exclude(module:'utdid4all')
    }

    3.将连接电脑的手机日志log保存到D:/log.txt
    adb logcat -V time *:V > D:/log.txt  记录日志

     time *:V  过滤打印信息 时间 万能匹配符;V开头的信息

    V — 明细 (最低优先级)

    D — 调试

    I — 信息

    W — 警告

    E — 错误

    F — 严重错误

    S — 无记载 (最高优先级,没有什么会被记载)

    brief — 显示优先级/标记和原始进程的PID (默认格式)

    process — 仅显示进程PID

    tag — 仅显示优先级/标记

    thread — 仅显示进程:线程和优先级/标记

    raw — 显示原始的日志信息,没有其他的元数据字段

    time — 显示日期,调用时间,优先级/标记,PID

    long —显示所有的元数据字段并且用空行分隔消息内容

    radio — 查看包含在无线/电话相关的缓冲区消息

    events — 查看事件相关的消息

    main — 查看主缓冲区 (默认缓冲区)

    参考 http://blog.csdn.net/xyz_lmn/article/details/7004710

  • 相关阅读:
    个人最终总结
    电梯调度的改进
    电梯调度程序
    读程序的修改
    对wordcount单词字母部分的修改
    wordcount
    读程序
    单元测试
    Microsoft Visual Studio 2013安装及试用
    附加题(二)——沈航软件工程期末附加作业
  • 原文地址:https://www.cnblogs.com/xBig/p/6961450.html
Copyright © 2020-2023  润新知