我想在从Code:
LISessionManager.getInstance(getApplicationContext()).init(this, buildScope(), new AuthListener() {
@Override
public void onAuthSuccess() {
// Authentication was successful. You can now do
// other calls with the SDK.
Toast.makeText(MainActivity.this,"Authrization Success",Toast.LENGTH_SHORT).show();
fetchDetailsLinkedin();
}
@Override
public void onAuthError(LIAuthError error) {
Log.e("Auth Error",error.toString());
// Handle authentication errors
Toast.makeText(MainActivity.this,"Authrization Failed",Toast.LENGTH_SHORT).show();
}
}, true);
提取数据时显示com.example.loginintegration
,当我第一次获取数据时,它工作正常,但是当我想从API刷新数据时,ProgressDialog
启动而不会停止
我创建了ViewModel
并尝试管理可见性,但是它不起作用
这是我从“活动”中刷新数据的方式
ProgressDialog
下面是我的ViewModel类
MutableLiveData<Boolean>()
答案 0 :(得分:0)
我尚未测试您的代码,但我认为您的问题出在viewmodel中的getNorthTrams()函数中。
首次获取数据时,未初始化电车,正在进行api调用,并且仅在onCompleted上,您设置isNorthUpdating.value = false。该代码有效。
但是当您刷新数据时,电车已经初始化。因此,在任何情况下isNorthUpdating.value = false都不会导致进度对话框无法关闭。
所以我认为您应该在视图模型中处理其他情况。
fun getNorthTrams(): MutableLiveData<TramModel> {
isNorthUpdating.value = true
if (!::trams.isInitialized) {
trams = MutableLiveData()
callTokenAPI()
}else{
//do your thing for refresh
isNorthUpdating.value = false
}
return trams
}
此外,在api调用中,如果发生错误,则应将isNorthUpdating设置为false并显示一些错误消息。否则,即使api调用发生错误,进度对话框也始终会显示。