button_loginin.setOnClickListener(new View.OnClickListener() {
@
Override public void onClick(View v) {
User user = new User();
//登陆
user.setPhone(phone.getText().toString());
user.setPassword(password.getText().toString());
url = "
https://www.apiopen.top/login?key=" + user.getKey() + "&phone=" + user.getPhone() + "&passwd=" + user.getPassword();
getjson(url); //获取数据并以 jsonobject 存储在 json 中
user=getUser();
if (("成功!").equals(user.getMsg())) {
intent.putExtra("user", user);
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "账号不存在或密码错误", Toast.LENGTH_SHORT).show();
}
}
});
public User getUser() {
User user1 = new User();
try {
JSONObject data1= json.getJSONObject("data"); //更新 user 内的数据
user1.setPhone(data1.getString("phone"));
user1.setCreatedTime(data1.getString("createTime"));
user1.setMsg(json.getString("msg"));
} catch (Exception e) {
// TODO: handle exception
}
return user1;
}
主要代码如上,我查了一下,大概是多线程的锅,但是新手不大懂要怎么解决,用锁的话只能锁方法吧,不知道要怎么做才能在第一次点击后,跳转之前成功更新数据?用 sleep 函数貌似也没有用,谢谢各位大佬
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/546801
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.