• android项目杂记


    1、自动登录,在SdCrmApplication 代码中,

     String username = String.valueOf(SpUtils.get(this, SharePrefUtil.KEY.USER_NAME, ""));
                String password = String.valueOf(SpUtils.get(this, SharePrefUtil.KEY.USER_PASSWORD, ""));
    

     2、记录用户信息,在登录后LoginActivity

     protected void saveUserInfor(Users users, String password) {
            app.setUsers(users);
            try {
                password= AesUtil.encrypt(password,JxConf.AESKEY);
                SpUtils.put(SharePrefUtil.KEY.USER_PASSWORD, password);
                SpUtils.put(SharePrefUtil.KEY.USER_NAME, users.getUsername());
            } catch (Exception e) {
                e.printStackTrace();
            }
    
    
        }
    

     3、退出登录 UserInformationActivity

    	build.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    
    				@Override
    				public void onClick(DialogInterface dialog, int which) {
    					// 右盟分析工具
    				//	MobclickAgent.onEvent(ct, JxConf.C_MYCOFFERS_PERSONALINFORMATION_DROPOUT);
    					removePushTag();
    					app.setUsers(null);
    					app.setUserInfo(null);
    
    					SpUtils.remove(ct,SharePrefUtil.KEY.USER_NAME);
    
    					SharePrefUtil.saveLong(ct, SharePrefUtil.KEY.LAST_UID, 0);
    					AppManager appManager = AppManager.getAppManager();
    					MainActivity activity = (MainActivity) appManager.indexOfActivity(0);
    					activity.getHomeFragment().settingMessage(0);
    					// 通知服务器登出
    					if (userService == null) {
    						userService = new UserService(ct);
    					}
    					userService.logout(users.getUsername(),new TextHttpResponseHandler(){
    						@Override
    						public void onFailure(int statusCode, Header[] headers,
    								String responseBody, Throwable error) {
    							super.onFailure(statusCode, headers, responseBody,
    									error);
    							setResult(RESULT_OK);
    							finish();
    						}
    
    						@Override
    						public void onSuccess(int statusCode, Header[] headers,
    								String responseBody) {
    							super.onSuccess(statusCode, headers, responseBody);
    							setResult(RESULT_OK);
    							finish();
    						}
    					});
    					activity.remoteGetAccessToken();
    					activity.getHomeFragment().selectPageView(R.id.rb_home);
    				}
    			});
    

     4、首次使用自动登录的地方MainActivity

    @Override
        protected void onResume() {
            Fragment fragment = getSupportFragmentManager().findFragmentByTag(
                    curTag);
            if (fragment != null) {
                fragment.onResume();
            }
            super.onResume();
            // resumeStatus = isAppOnForeground();
    
            if (app.getUsers() != null && app.getUsers().getUsername()!="") {
                if (stopStatus == true && isActive == false) {
    
                    boolean switcher = SharePrefUtil.getBoolean(ct,
                            SharePrefUtil.KEY.SWITCH_GESTURE, false);
                    if (switcher == true) {
                        isActive = true;// app 从后台唤醒,进入前台
                        stopStatus = true;
                        long intoTime=SharePrefUtil.getLong(ct,SharePrefUtil.KEY.OUT_TIME,0);
                        if(System.currentTimeMillis()-intoTime>= Constants.INTOTIMELOCKED) {
                            // 暂时不提供锁频界面
                           /* Intent intent = new Intent(this, LockActivity.class);
                            startActivity(intent);*/
                        }
                    }
    
                }
            }
    
    
        }
    
  • 相关阅读:
    TCHAR字符串查找&反向查找字符串
    如何判断一个文本文件的编码
    用NETSH WINSOCK RESET命令修复网络
    #define和typedef在windows上的应用
    Visual Studio Code (vscode)编译C++
    win32 Message(MSG)消息处理
    HBRUSH to RGB value
    InvalidateRect和UpdateWindow
    Informatic ETL开发步骤
    【非官方方式】获取Disconf动态更新的配置文件的值
  • 原文地址:https://www.cnblogs.com/hoge/p/6286645.html
Copyright © 2020-2023  润新知