Android编程注意事项(不断更新中)

    xiaoxiao2023-10-10  169

    1. =======不要再子线程中更新ui,不要再子线程中调用toast,例如:

    private void loadData() { if (isRunningFindTask) { //下面这个toast会报崩溃: /** * java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.<init>(Handler.java:209) at android.os.Handler.<init>(Handler.java:123) at android.widget.Toast$TN.<init>(Toast.java:349) at android.widget.Toast.<init>(Toast.java:105) at android.widget.Toast.makeText(Toast.java:263) at shu.shi.com.scquan.utils.ToastUitl.initToast(ToastUitl.java:27) at shu.shi.com.scquan.utils.ToastUitl.showShort(ToastUitl.java:41) at shu.shi.com.shici.activity.scmain.ScTuijianFragment.loadData(ScTuijianFragment.java:121) */ // ToastUitl.showShort("正在刷新..."); }

    }

     

    2. ==============Android8.0,应用管理需要进行权限check,代码如下:

     在activity中,调用如下代码:  PermissionCheckManager.checkInstallAppAndroid_O(getActivity());    PermissionCheckManager类的代码:  //8.0 from 原文:https://blog.csdn.net/zzz2017/article/details/81172229     public static void checkInstallAppAndroid_O(Context activity) {         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {             boolean hasInstallPermission = isHasInstallPermissionWithO(activity);             if (!hasInstallPermission) {                 startInstallPermissionSettingActivity(activity);                 return;             }         }

        }     @RequiresApi (api = Build.VERSION_CODES.O)     public static boolean isHasInstallPermissionWithO(Context context){         if (context == null){             return false;         }         return context.getPackageManager().canRequestPackageInstalls();     }

        /**      * 开启设置安装未知来源应用权限界面      * @param context      */     @RequiresApi(api = Build.VERSION_CODES.O)     private static void startInstallPermissionSettingActivity(Context context) {         if (context == null){             return;         }         Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);         ((Activity)context).startActivityForResult(intent,REQUEST_CODE_APP_INSTALL);     }  

    最新回复(0)