请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于onSignInSuccess()和OnResume()的finish()是否会冲突的问题

那个登录成功后会被微信拉起的WXEntryActivity ,,它是继承WXEntryTemplate的,WXEntryTemplate在onResume的时候就finshi()了,这样WXEntryActivity同样会在onResume的时候就会被finish(),

那我很好奇onSignInSuccess() 是否(准确来讲不是是否,是如何)还会有足够的时间得到执行?

正在回答 回答被采纳积分+3

2回答

提问者 全是甘货 2018-01-15 00:42:03

谢谢老师的回答,但老师没有正面回答我的问题: 

我们一般的理解,Activity启动,是走onCreate,onstart,onResume这三个生命周期的,而 

@Override 
protected void onSignInSuccess(String userInfo) { 
    LatteWeChat.getInstance().getSignInCallback().onSignInSuccess(userInfo); 
}

是我们自己在BaseWXEntryActivity写的抽象方法,是在

onResp() --》getAuth()--》getUserInfo()之后成功了才调用的。 

而WXEntryActivity是微信回调的时候拉起的吧,WXEntryActivity被拉起,连带继承的父类WXEntryTemplate/BaseWXEntryActivity的生命周期也会走一遍,是这么一个逻辑吧。

然而到了WXEntryTemplate的onResume的时候,就finish掉了,那么上面所说的onResp()--》getAuth()--》getUserInfo()--》onSignInSuccess()怎么会有足够的时间得到执行呢?是在什么时候执行的呢?我们怎么会能通知到登录的Fragment,已经登录成功呢?

0 回复 有任何疑惑可以回复我~
傅猿猿 2018-01-14 23:57:43

其实是打开的一瞬间关闭了,不过其实很多APP的做法是干脆就在wxentryactivity里写一些展示逻辑,这样其实也是比较好的

0 回复 有任何疑惑可以回复我~
  • 提问者 全是甘货 #1
    谢谢老师的回答,但老师没有正面回答我的问题:
    我们一般的理解,Activity启动,是走onCreate,onstart,onResume这三个生命周期的,而
    @Override
        protected void onSignInSuccess(String userInfo) {       LatteWeChat.getInstance().getSignInCallback().onSignInSuccess(userInfo);
        }
    是我们自己在BaseWXEntryActivity写的抽象方法,是在onResp--》getAuth--》getUserInfo之后成功了才调用的。
    
    而WXEntryActivity是微信回调的时候拉起的,WXEntryActivity被拉起,连带继承的父类WXEntryTemplate/BaseWXEntryActivity的生命周期也会走一遍。
    
    然后到了WXEntryTemplate的onResume的时候,就finish掉了,那么上面所说的onResp--》getAuth--》getUserInfo--》onSignInSuccess怎么会有足够的时间得到执行呢?,我们怎么会能通知到登录的Fragment,已经登录成功呢?
    回复 有任何疑惑可以回复我~ 2018-01-15 00:37:54
  • 提问者 全是甘货 #2
    排版太差了,我上面给您的回复,已经重新在您的回答下面原文整理了一下排版,请看上面的第二个回答,是我的问题。
    回复 有任何疑惑可以回复我~ 2018-01-15 00:43:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信