Android 开发(实用技巧,持续更新)

来源:互联网 发布:网络域名交易合同骗局 编辑:程序博客网 时间:2024/05/23 10:27

不废话直接技巧

5.控制toolbar根据不同的情况来设置是否显示或者隐藏

        appBarLayout = (AppBarLayout) findViewById(R.id.app_bar_layout);        mToolbar = (Toolbar) findViewById(com.baidu.screenlock.core.R.id.toolbar);        setSupportActionBar(mToolbar);        //设置头部是否隐藏        AppBarLayout.LayoutParams layoutParams = (AppBarLayout.LayoutParams) appBarLayout.getChildAt(0).getLayoutParams();        if (Build.VERSION.SDK_INT <= 15) {            layoutParams.setScrollFlags(0);        }else {            layoutParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);        }        mToolbar.setLayoutParams(layoutParams);


4.调用系统的方法来判断获得的app列表是否是系统的app

需求场景:比如现在要获取当前栈中的所有元素的图标,但是又不要显示系统的时候

/** * 是否系统应用 * @param ctx * @param pkgName * @return */public static boolean isSystemApp(Context ctx, String pkgName){try {  PackageManager manager = ctx.getPackageManager();              PackageInfo packageInfo = manager.getPackageInfo(pkgName, PackageManager.GET_CONFIGURATIONS);              if((packageInfo.applicationInfo.flags & android.content.pm.ApplicationInfo.FLAG_SYSTEM)!=0){                  return true;              }        } catch (Exception e) {              e.printStackTrace();          }  return false;}


3.app中的权限页面跳转的时候一般会在权限页面上盖一个半透明的提示Activity,但是有的机型:比如小米5,背景会全部变黑

    搞了好久找到解决办法,就是加延迟,就可以顺利解决这种变黑的问题

    

                           Intent guideIntent = new Intent(mContext, LockTipOperationActivity.class);                            guideIntent.putExtra(LockTipOperationActivity.EXTRAS_KEY_NAME, setProcessType.getGuideId());                            AdaptationPackageUtil.startGuideActivity(mContext, guideIntent);

2.隐式打开Activity的更加简便的方法

try{                    Intent intent = new Intent();                    intent.setClassName(getContext(),"com.baidu.screenlock.settings.OneKeySetActivity");                    getContext().startActivity(intent);                }catch (Exception e){                    e.printStackTrace();                }
百度上面的都是要添加filter什么的,这个方式更加简便、方便,最好在外面加一个try{} catch(){}防止类路径错误等问题导致的错误

1.Android属性之excludeFromRecents

android:excludeFromRecents控制在不在recent列表中显示。true时不显示;false显示,默认。运行如下activity后,不会显示在recent列表中。<activity            android:name="com.example.com.test.wgh.MainActivity"            android:label="@string/app_name"             android:excludeFromRecents="true">





0 0