android 启动器 两次,启动新活动时,Android活动生命周期调用了两次
我基本上是在开始一个包含webview的新活动。但是这个webview活动的生命周期在第一次运行时调用了两次。当破坏此活动并重新打开时,一切正常。
活动A运行
Act A -> onCreate
Act A -> onStart
Act A -> onResume
开始新活动
startActivity(new Intent(this, WebViewActivity.class));
活动B(WebView活动)运行
Act A -> onPause
Act B -> onCreate
Act B -> onStart
Act B -> onResume
日志信息可能导致这种情况
W/WindowManager: Attempted to set replacing window on non-existing app token Token{1a4a5a ActivityRecord{219a05 u0 ui.activity.WebViewActivity t130}}
然后继续
Act B -> onPause
Act B -> onStop
Act B -> onDestroy
Act B -> onCreate
Act B -> onStart
Act B -> onResume
Act A -> onStop
我用很多设备测试过这种情况
Xiaomi mi a2 Lite Api 27-> error happens
Lg g4 Api 24 -> error happens
Huawei Nexus 6P Api 27-> error happens
Huawei Mate 10 Lite Api 26 -> error happens
Emulator Api 21 -> error not happens
Xiomi mi a2 Api 27 -> error not happens
是设备错误吗?还是操作系统错误?我怎样才能修好它?如果有人能帮忙,我将不胜感激。
我的webview活动代码
public class WebViewActivity extends BaseActivity implements ViewClickHandler {
public static final String TAG = WebViewActivity.class.getSimpleName();
public static final String URL = "https://www.google.com";
ActivityWebViewBinding binding;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_web_view);
binding.setClickHandler(this);
binding.setLifecycleOwner(this);
setToolbar(binding.toolbar, true, R.string.terms_of_service);
initWebview();
binding.webView.loadUrl(URL);
Log.d(TAG, "onCreate");
}
private void initWebview() {
binding.webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
@Override
public void onPageStarted(
WebView view, String url, Bitmap favicon) {
try {
// showProgressDialog();
} catch (Exception ignore) {
}
}
@Override
public void onPageFinished(WebView view, String url) {
try {
// hideProgressDialog();
} catch (Exception ignore) {
}
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
//Your code to do
try {
// hideProgressDialog();
} catch (Exception ignore) {
}
}
});
binding.webView.setHorizontalScrollBarEnabled(false);
binding.webView.getSettings().setJavaScriptEnabled(true);
binding.webView.getSettings().setUseWideViewPort(true);
binding.webView.setInitialScale(1);
binding.webView.getSettings().setLoadWithOverviewMode(true);
}
@Override
public void onClick(View view) {
}
@Override
public void onCheckChange(View view, boolean isChecked) {
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
android 启动器 两次,启动新活动时,Android活动生命周期调用了两次相关推荐
- android中的横竖屏切换,Android中横竖屏切换时Activity的生命周期
Android中横竖屏切换时Activity的生命周期执行情况 1.默认情况下生命周期 (1)第一次进入界面 11-17 13:55:18.452: E/ImageListActivity(10586 ...
- dialog 弹框时activity生命周期调用过程
dialog 弹框时activity生命周期调用过程 这个问题,分两部分 在普通activity弹框dialog,activity的onPause方法会被调用吗? activity a中给dialog ...
- android资源编译失败,在android studio中打开一个新项目时,Android资源编译失败
用我的android studio打开新项目时出现此错误 Android资源编译失败输出:C:\ Projects \ Popular2 \ app \ src \ main \ res \ draw ...
- Android开发艺术探索笔记(一) Activity的生命周期和启动模式(1)
Activity作为Android开发中最常用的一个组件,是Android开发人员必须熟悉且掌握的重要内容.同时Activity也是在面试中经常被问到的一个方向.因此,掌握Activity的重要性也不 ...
- android 弹窗 onpause,Android 下拉通知栏时Activity的生命周期——重新理解onPause()
下拉通知栏时发生了什么 在某个APP中,发现下拉通知栏的时候,正在播放的视频会暂停,于是有点好奇这段操作是不是在生命周期中实现的.在网上众多关于Activity生命周期的讨论中,很多人认为onPaus ...
- android应用开发(25)---进程和应用程序生命周期
进程和应用程序生命周期 在大多数情况下,每个Android应用程序都在其自己的Linux进程中运行.当需要运行某些代码时,会为应用程序创建此进程,并且该进程将保持运行状态,直到不再需要它为止,并且 系 ...
- Android开发笔记(三十九)Activity的生命周期
与生命周期有关的方法 下面是Activity类与生命周期有关的方法: onCreate : 创建页面 onStart : 开始页面 onStop : 停止页面 onResume : 恢复页面 onPa ...
- Android零基础入门第86节:探究Fragment生命周期
2019独角兽企业重金招聘Python工程师标准>>> 一个Activity可以同时组合多个Fragment,一个Fragment也可被多个Activity 复用.Fragment可 ...
- 【Android 四大组件之Activity】一文吃透Activity 生命周期
作者:半身风雪 简介:在Android组件中最基本也是最为常见的四大组件: Activity Service服务 Content Provider内容提供者 BroadcastReceiver广播接收 ...
- android 组件生命周期,Android组件化开发实践(五):组件生命周期管理
每个Android应用启动时,都会先创建一个Application.通常在Application里我们会做一些应用初始化的操作,常见的有第三方SDK初始化.在应用组件化之后,组件与壳工程是隔离开来的, ...
最新文章
- rtsp流+vue进行视频播放(海康威视、大华摄像头)
- python 调用c++
- abap 向上取整CEIL和向下取整FLOOR
- c语言实现的sin cos查找表_考研数据结构之C语言实现顺序表的增、删、查(粘贴即可运行)...
- 天猫苛费猛如虎,天猫抽检潜“坑爹”
- c#结构体与类的区别
- C# WPF ListView Bindding 图片
- 30个免费网页设计模板
- 微型计算机的Usb有几个,一起来侃侃USB/eSATA二合一接口
- python的词性标注
- echarts双折线图自定义tooltips样式
- 不能不用也不可乱用的标准化和归一化处理
- 增加PRODUCT_BOOT_JARS及类
- java微信支付 需要证书吗_java引用微信支付的p12证书文件
- OA系统集团化共享服务平台,全面协同、全面移动
- 「数据架构」:主数据管理(MDM)对我的行业有什么帮助?
- 协同级联网络和对抗网络的目标检测
- Python正则表达式-1
- 计算机休眠后游戏,win10,win7玩游戏频繁进入睡眠模式,求解。
- codesys工程ST语言学习笔记(五)打开压缩文件projectarchive失败,指定的工程不能被加载
热门文章
- [776]github fork 别人的项目源作者更新后如何同步更新
- 洛谷 P1757 通天之分组背包(分组背包)[C,C++]
- 一篇文章带你学习 MongoDB 中各种类型的索引(_id索引/复合索引/过期索引/全文索引/地理空间索引/复合地理空间索引)
- 思科ACS配置案例解析
- SSM整合swagger(丝袜哥)
- 最新深度学习综述手册
- C#编码过程中出现CS8370,提示请使用更高的语言版本如何解决
- JavaScript中浅拷贝与深拷贝
- C语言大型连续剧(第三集)——函数帝国的崛起
- python制作冰花_Python-字符串常用操作方法