安卓跳转登录后如何记录之前的操作的问题思考

总体思路:

思路1 跳转,带上命令,登录后,通过EvnetBus通知原来的界面,由原理的界面执行登录后的行为

思路2 使用startActivityForResut,如果没有登录,在登录后在onActivityResult方法中判断登录的行为


思路1:简单代码


前 

if (AccountManager.getInstance().isLogin())
            startActivity(InfoEditActivity.class);
        else
            openLogin(Constants.CODE_sasa_INFO);



    public void onEventMainThread(LoginEvent event) {
        boolean handle = false;
        int code = event.getCode();
        switch (code) {
            case Constants.CODE_MINE_2_INFO:
                handle = true;
                onInfoClick();
                break;


===========


思路3:上面两种其实都是通过传命令字的方法,还有一种通过传递回调函数的方式,这种方式是否可行存在争议,也

很少见,因为这里涉及到了一个Activity去调用另外一个Activity里面的对象的方法,这种情况十分可行呢?


其实EevntBus中的onEventMainThread方法不是什么重新方法(看下图),这个方法最终应该是被Activity对象本身去调用的,

而不是别的Activity去操作的,如果通过接口传递,也就意味着别的Activity会操作上一个Activity的成员变量里面的方法(回调方法)

道理上基本是一致的,不同点是一个是直接传递,一个是注册在一个方法

如果在生命周期没有问题的情况下,思路3看起来更加的简介,不需要再使用命令字前后对照

 startActivity(LoginActivity.class, bundle);

看来是可行的,但是怎么把回调对象从一个acvity对象传递给下一个LoginActivity呢,好像不行啊,EevntBus这个方式其实是先把这个对象放在一个地方 这样是可以的





你可能感兴趣的:(安卓跳转登录后如何记录之前的操作的问题思考)