我使用intent从主活动开始活动1。activity1加载(可能是广告)需要相当长的时间,因此为了向用户保证我的应用程序没有崩溃,我在线性布局id加载中显示了一个圆形进度条。为此,我在按钮的onclick事件中将加载的可见性设置为visible。从activity1返回时,我将可见性设置为不可见,如下所示:
ActivityResultLauncher<Intent> resultLaunch = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if(result.getResultCode()==111){
assert result.getData() != null;
String data= result.getData().getStringExtra("from");
if(data.equals("activity1")) {
loading.setVisibility(View.INVISIBLE);// back from Activity1 switch-off
loading
}
}
这很有效,但如果用户点击手机进度条的后退按钮,它将永远可见。我已尝试在mainactivity的onresume()中设置可见性,但它不起作用。我宁愿避免设置计时器。有什么帮助吗?
2条答案
按热度按时间ma8fv8wu1#
结果我工作得很好
pw136qt22#
发生这种情况的原因是,结果代码不等于111。使用result.success更改111,它将正常工作。如果即使数据为空也要隐藏进度条,请添加else语句,并将进度条的可见性设置为“进入”。