Android Stackmob:提示登录的用户信息

Android Stackmob:提示登录的用户信息,第1张

概述我开始将stackmob用于Android开发.我遇到了一个问题.确实,在创建了用于用户登录的界面之后,我希望我的主页在其顶部提示实际登录用户的名称.因此,我使用了getloggedInUser(ClassT,stackMobCallBack<T>)来获取用户.第一个问题是我无法在回拨电话之外找到该用户.因此,我创建了一个

我开始将stackmob用于Android开发.我遇到了一个问题.确实,在创建了用于用户登录的界面之后,我希望我的主页在其顶部提示实际登录用户的名称.

因此,我使用了getloggedInUser(Classt,stackMobCallBack< T>)来获取用户.第一个问题是我无法在回拨电话之外找到该用户.因此,我创建了一个从getloggedin用户方法的callBack调用的方法.在那里,我遇到了另一个问题.该方法的 *** 作对我的观点没有影响.实际上,当主页提示时,文本保持不变(无需根据登录的用户进行调整).奇怪的是,如果我减少应用程序然后恢复它,则文本将被更新.这是我的代码:

public class MainActivity extends Activity {    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        StackMobAndroID.init(getApplicationContext(), 0,                             "XXXXX.XXXXXX.XXXXX");        TextVIEw welcomeText = (TextVIEw) findVIEwByID(R.ID.welcomehead);        User.getLoggedInUser(User.class,new StackMobqueryCallback<User>(){            public voID failure(StackMobException e) {                // Todo auto-generated method stub            }            public voID success(List<User> List) {                User loggedUserf = List.get(0);                setMyAppUser(loggedUserf);                finish();            }        });        public voID setMyAppUser(User user){            String welcome = welcomeText.getText().toString();            welcome = welcome+" "+user.getUsername();            welcomeText.setText(welcome);        }    }

我已经坚持了很长时间,我想这个问题与回调是异步方法这一事实有关,但是我在视图中使用了诸如invalIDate或postinvalIDate方法之类的各种东西来修复它.没有任何作用.

解决方法:

使用StackMob发出请求时,它将在不同的线程(不是UI线程)中运行.
当您想要修改/触摸/编辑UI时,您需要确保您的代码在UI线程中运行.
因此,在成功方法中,您需要执行以下 *** 作:

runOnUiThread(new Runnable() {  @OverrIDe  public voID run() {    setMyAppUser(loggedUserf);  }});

额外:
最好让您所有的活动来扩展具有以下内容的活动(我们称其为BaseActivity):

  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    if (StackMob.getStackMob() == null)       StackMobAndroID.init(getApplicationContext(), 0, "XXXX");  }

为什么?
只是为了确保在重新打开应用程序(从前台)时,StackMob始终会初始化.

总结

以上是内存溢出为你收集整理的Android Stackmob:提示登录的用户信息全部内容,希望文章能够帮你解决Android Stackmob:提示登录的用户信息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1087366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存