华为EMUI4.0 Android的WebView设置setJavaScriptEnabled无效

本人在使用HTML5开发过程中遇到这样一个问题,我将html和js文件放到Android的assets下,在Activity中使用webview来加载html,但是我加上webview.getSettings().setJavaScriptEnabled(true)这句话的话,在华为EMUI4.0系统下,会出现一直显示加载的情况。望各位大神指教

4个回答

  1. 打开网页时不调用系统浏览器, 而是在本WebView中显示:

复制代码
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
复制代码
2. 通过java代码调用javascript

复制代码
WebSettings webSettings = mWebView .getSettings();

webSettings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new Object() {

public void clickOnAndroid() {

mHandler.post(new Runnable() {

public void run() {

webview.loadUrl("javascript:wave()");

}

});

}

}, "demo");
复制代码
3. 按返回键时, 不退出程序而是返回上一浏览页面:

复制代码
public boolean onKeyDown(int keyCode, KeyEvent event) {

if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {

mWebView.goBack();

return true;

}

return super.onKeyDown(keyCode, event);

}
复制代码
4. 打开页面时, 自适应屏幕:

WebSettings webSettings = mWebView .getSettings();

webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放
webSettings.setLoadWithOverviewMode(true);
5. 便页面支持缩放:

WebSettings webSettings = mWebView .getSettings();

webSettings.setJavaScriptEnabled(true);

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);
6.如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。

webview.requestFocusFromTouch();
7.WebView 加载界面主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL.

1、LoadUrl 直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif)

2、LoadData 显示文字与图片内容 (模拟器1.5、1.6)

3、LoadDataWithBase 显示文字与图片内容(支持多个模拟器版本)
8.WebSettings 的常用方法介绍

复制代码
setJavaScriptEnabled(true); //支持js

setPluginsEnabled(true); //支持插件

setUseWideViewPort(false); //将图片调整到适合webview的大小

setSupportZoom(true); //支持缩放

setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持内容重新布局

supportMultipleWindows(); //多窗口

setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存

setAllowFileAccess(true); //设置可以访问文件

setNeedInitialFocus(true); //当webview调用requestFocus时为webview设置节点

webview webSettings.setBuiltInZoomControls(true); //设置支持缩放

setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口

setLoadWithOverviewMode(true); // 缩放至屏幕的大小

setLoadsImagesAutomatically(true); //支持自动加载图片
复制代码
9.WebViewClient 的方法全解

复制代码
doUpdateVisitedHistory(WebView view, String url, boolean isReload) //(更新历史记录)

onFormResubmission(WebView view, Message dontResend, Message resend) //(应用程序重新请求网页数据)

onLoadResource(WebView view, String url) // 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。

onPageStarted(WebView view, String url, Bitmap favicon) //这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。

onPageFinished(WebView view, String url) //在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关闭loading 条,切换程序动作。

onReceivedError(WebView view, int errorCode, String description, String failingUrl)// (报告错误信息)

onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//(获取返回信息授权请求)

onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) //重写此方法可以让webview处理https请求。

onScaleChanged(WebView view, float oldScale, float newScale) // (WebView发生改变时调用)

onUnhandledKeyEvent(WebView view, KeyEvent event) //(Key事件未被加载时调用)

shouldOverrideKeyEvent(WebView view, KeyEvent event)//重写此方法才能够处理在浏览器中的按键事件。

shouldOverrideUrlLoading(WebView view, String url)
//在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。

qq_33863623
qq_33863623 这是我的代码, webview=(WebView)this.findViewById(R.id.webView1); webview.getSettings().setUseWideViewPort(true); webview.getSettings().setSupportZoom(false); webview.getSettings().setJavaScriptEnabled(true); webview.loadUrl("file:///android_asset/newhtml5/login.html"); webview.setWebViewClient(new MyWebViewClient()); 这是我的代码,是不是要把webview.setWebViewClient(new MyWebViewClient());这句话放到 webview.getSettings().setJavaScriptEnabled(true); 之前啊?
大约 4 年之前 回复
    这是我的代码,
    webview=(WebView)this.findViewById(R.id.webView1);
     webview.clearCache(true);
     webview.clearHistory();
     webview.setBackgroundColor(0);
     webview.getSettings().setNeedInitialFocus(true);
     webview.setFocusable(true);
     webview.setFocusableInTouchMode(true);
     webview.setBackgroundColor(Color.parseColor("#FFFFFF"));
    //禁止缩放
     webview.getSettings().setUseWideViewPort(true);//支持屏幕拉伸
     webview.getSettings().setSupportZoom(false);
     webview.setScrollBarStyle(0);
     webview.getSettings().setUseWideViewPort(true);
     webview.getSettings().setDomStorageEnabled(true);//支持localstorage存储
     webview.getSettings().setLoadWithOverviewMode(true);
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.getSettings().setPluginState(WebSettings.PluginState.ON);
     webview.loadUrl("file:///android_asset/newhtml5/login.html");
     webview.setWebViewClient(new MyWebViewClient());
    这是我的代码,是不是要把webview.setWebViewClient(new MyWebViewClient());这句话放到 webview.getSettings().setJavaScriptEnabled(true); 之前啊?

你需要设置由webView显示网页。

        //设置由webView显示网页,而不是交给系统浏览器或者第三方
        myWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
    }

如果需要显示alert消息等,还需要加上:

         //设置自行处理alert
        myWebView.setWebChromeClient(new WebChromeClient(){
            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                return super.onJsAlert(view, url, message, result);
            }
        });

你把注解加上,在加上webView.getSettings().setJavaScriptEnabled(true);可以试试

wuseal
wuseal 什么注解,我执行情况就是网页上的js代码都不能执行
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android4.0系统webview播放视频全屏的异常

下面是log, 我在两部手机上测试过,在华为上测试时捕捉到了异常,另一部没问题 java.lang.NullPointerException at android.view.ViewGroup.addViewInner(ViewGroup.java:3377) at android.view.ViewGroup.addView(ViewGroup.java:3249) at android.view.ViewGroup.addView(ViewGroup.java:3225) at android.webkit.HTML5VideoFullscreen.enterFullscreen(HTML5VideoFullscreen.java:253) at android.webkit.HTML5VideoView.enterFullscreenVideoState(HTML5VideoView.java:527) at android.webkit.HTML5VideoViewProxy$VideoPlayer.enterFullscreenVideo(HTML5VideoViewProxy.java:180) at android.webkit.HTML5VideoViewProxy.handleMessage(HTML5VideoViewProxy.java:461) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4825) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) at dalvik.system.NativeStart.main(Native Method)

android webview 加载 基于webgl + three.js 的3D图形网页问题

html 网页中用webgl + three.js画了几个3D的方块。android测试程序中,使用 webview控件加载该html网页。代码如下: private WebView m_Webgl3D_WV; private WebSettings m_WebSettings; @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); m_Webgl3D_WV = (WebView)this.findViewById(R.id.webgl3D_WV); m_WebSettings = m_Webgl3D_WV.getSettings(); m_WebSettings.setJavaScriptEnabled(true); String url = "file:///android_asset/webgl_test1.html"; //url = "http://10.2.3.104:8086/webgl_test1.html"; m_Webgl3D_WV.loadUrl(url); } 分别测试了本地加载html文件和远程加载html文件两种方式。在华为手机mate8(EMUI4.0 android 6.0)上测试,能够正常显示3D图形。但是在华为平板电脑m2-801w(EMUI3.1 android 5.1.1)上测试,正常加载网页,但是不显示3D图。在联想的一款平板电脑(android 4.4.4)上测试,能够正常显示3D图形。 请问华为平板电脑m2-801w对webgl的支持需要做什么特殊的设置吗?从代码层面或系统设置中怎样解决该问题。

华为emui5.0,Android7.0系统,整个activity不能点击的问题

activity大概布局为顶部,中间,底部三部分,顶部是一列按钮, 中间是比较复杂的布局,当我再oncreate()中View.inflate()一个比较复杂的view时(这个view无论我是不是addview()到activity的布局钟,会导致顶部的按钮不能点击, Android stuido 的run里面打印信息是:I/HwPointEventFilter: ACTION_DOWN has not handle,点击整个页面 都会打印这个信息。 ![图片说明](https://img-ask.csdn.net/upload/201803/06/1520325530_629647.png) 坑爹的是:我进行横竖屛切换时,重新走一遍生命周期,然后按钮就可以重新点击了,,而且debug调试的时候也不会出现这个问题,只有在run调试和release版本会出现这个问题 现在测试的是只有华为安卓7.0出现这个问题,华为的安卓8.0,5.0,6.0都不会出现这个问题

关于华为emui3.1内存泄露问题,感觉华为改了底层

![图片说明](https://img-ask.csdn.net/upload/201705/26/1495767327_387986.png)

小米,华为等系统定制的android权限控制问题

现在在开发应用,发现小米,华为等机型在权限管理里面可以控制我应用的定位权限 ,有允许,询问和禁止三种选择,我想知道怎么判断用户在小米等系统的权限管理那 选的是那三种的哪种。

EMUI5.0 Android7.0中开发遇到内存泄漏

com.zxsd.shoppingguide.activity.AggregationEntryActivity has leaked: GC ROOT static android.gestureboost.GestureBoostManager.sGestureBoostManager references android.gestureboost.GestureBoostManager.mContext leaks com.zxsd.shoppingguide.activity.AggregationEntryActivity instance Retaining: 4.9 KB. Reference Key: def072d8-5909-4709-9365-9a244a488e02 Device: HUAWEI honor FRD-AL10 FRD-AL10 Android Version: 7.0 API: 24 LeakCanary: 1.5 00f37f5 Durations: watch=5011ms, gc=173ms, heap dump=1862ms, analysis=103468ms Details: Class android.gestureboost.GestureBoostManager static sGestureBoostManager = android.gestureboost.GestureBoostManager@3172306 (0x12e88e50) static SWITCH_GESTURE_BOOST = 4 static $classOverhead = byte[652]@318563329 (0x12fce401) static TAG = java.lang.String@1896298 (0x71073638) static GESTURE_BOOST_CODE = 10001 static RMS_EXT_CODE_BASE = 10000 Instance of android.gestureboost.GestureBoostManager static sGestureBoostManager = android.gestureboost.GestureBoostManager@3172306 (0x12e88e50) static SWITCH_GESTURE_BOOST = 4 static $classOverhead = byte[652]@318563329 (0x12fce401) static TAG = java.lang.String@1896298 (0x71073638) static GESTURE_BOOST_CODE = 10001 static RMS_EXT_CODE_BASE = 10000 mAwareService = null mContext = com.zxsd.shoppingguide.activity.AggregationEntryActivity@3151232 (0x12c86600) mGestureBoostflag = false shadow$klass = android.gestureboost.GestureBoostManager shadow$monitor = 0 Instance of com.zxsd.shoppingguide.activity.AggregationEntryActivity static $change = null static $classOverhead = byte[4544]@316317697 (0x12daa001) static serialVersionUID = 0 appBarLayout = android.support.design.widget.AppBarLayout@3208130 (0x131f3800) btnLeft = android.support.v7.widget.AppCompatTextView@3211796 (0x1324d000) btnRight = android.support.v7.widget.AppCompatTextView@3212390 (0x1325b800) btnRightTwo = android.support.v7.widget.AppCompatTextView@3212267 (0x13258800) bundle = android.os.Bundle@3205945 (0x131be280) container = android.widget.FrameLayout@3214438 (0x1328d800) fragment = com.zxsd.shoppingguide.fragment.AggregationEntryFragment@3151228 (0x12c864c0) imgBack = android.support.v7.widget.AppCompatImageButton@3211827 (0x1324dc00) imgMore = android.support.v7.widget.AppCompatImageButton@3212369 (0x1325b000) layoutId = 2130968603 toolbar = android.support.v7.widget.Toolbar@3211560 (0x13247400) toolbarTitle = android.support.v7.widget.AppCompatTextView@3214479 (0x1328e800) mDelegate = android.support.v7.app.AppCompatDelegateImplN@3148888 (0x12c4d280) mEatKeyUpEvent = false mResources = null mThemeId = 2131361857 mCreated = true mFragments = android.support.v4.app.FragmentController@3164159 (0x12dc1fc0) mHandler = android.support.v4.app.FragmentActivity$1@319517120 (0x130b71c0) mNextCandidateRequestIndex = 0 mOptionsMenuInvalidated = false mPendingFragmentActivityResults = android.support.v4.util.SparseArrayCompat@3205947 (0x131be340) mReallyStopped = true mRequestedPermissionsFromFragment = false mResumed = false mRetaining = false mStopped = true mStartedActivityFromFragment = false mStartedIntentSenderFromFragment = false mExtraDataMap = android.support.v4.util.SimpleArrayMap@3204282 (0x131958c8) mActionBar = null mActionModeTypeStarting = 0 mActivityInfo = android.content.pm.ActivityInfo@3148902 (0x12c4d820) mActivityTransitionState = android.app.ActivityTransitionState@3191331 (0x130595b8) mApplication = com.zxsd.shoppingguide.base.App@3146104 (0x12c09308) mCalled = true mChangeCanvasToTranslucent = false mChangingConfigurations = false mComponent = android.content.ComponentName@3162928 (0x12da3f00) mConfigChangeFlags = 0 mCurrentConfig = android.content.res.Configuration@3158405 (0x12d35848) mCustActivity = android.app.HwCustActivityImpl@3204282 (0x131958f8) mDecor = null mDefaultKeyMode = 0 mDefaultKeySsb = null mDestroyed = true mDoReportFullyDrawn = false mEatKeyUpEvent = false mEmbeddedID = null mEnableDefaultActionBarUp = false mEnterTransitionListener = android.app.SharedElementCallback$1@1903589792 (0x717679a0) mExitTransitionListener = android.app.SharedElementCallback$1@1903589792 (0x717679a0) mFinished = true mFragments = android.app.FragmentController@3153430 (0x12cbc0d0) mHandler = android.os.Handler@3195173 (0x130b72c0) mHasCurrentPermissionsRequest = false mIdent = 132658027 mInstanceTracker = android.os.StrictMode$InstanceTracker@315343040 (0x12cbc0c0) mInstrumentation = android.app.Instrumentation@3148126 (0x12c3a8f8) mIntent = android.content.Intent@3168869 (0x12e34fc0) mIsFullFlag = false mLastNonConfigurationInstances = null mMainThread = android.app.ActivityThread@3147206 (0x12c24160) mManagedCursors = java.util.ArrayList@3204284 (0x131959a0) mManagedDialogs = null mMenuInflater = null mParent = null mReferrer = java.lang.String@3168862 (0x12e34cc0) mResultCode = 0 mResultData = null mResumed = false mSearchEvent = null mSearchManager = null mStartedActivity = false mStopped = true mTaskDescription = android.app.ActivityManager$TaskDescription@319517344 (0x130b72a0) mTemporaryPause = false mTitle = java.lang.String@1894097 (0x70e5a400) mTitleColor = 0 mTitleReady = true mToken = android.os.BinderProxy@3197227 (0x130e9500) mTranslucentCallback = null mUiThread = java.lang.Thread@2021072 (0x78771dd0) mVisibleBehind = false mVisibleFromClient = true mVisibleFromServer = true mVoiceInteractor = null mWindow = com.android.internal.policy.HwPhoneWindow@3167633 (0x12e16ce0) mWindowAdded = true mWindowManager = android.view.WindowManagerImpl@3198605 (0x1310af60) mInflater = com.android.internal.policy.HwPhoneLayoutInflater@3170012 (0x12e50e20) mOverrideConfiguration = null mResources = android.content.res.HwResources@3164745 (0x12dd04c0) mTheme = android.content.res.Resources$Theme@316415648 (0x12dc1ea0) mThemeResource = 2131361857 mBase = android.app.ContextImpl@3148388 (0x12c40f20) shadow$klass = com.zxsd.shoppingguide.activity.AggregationEntryActivity shadow$monitor = 1073743756 Excluded Refs: Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always) Thread:FinalizerWatchdogDaemon (always) Thread:main (always) Thread:LeakCanary-Heap-Dump (always) Class:java.lang.ref.WeakReference (always) Class:java.lang.ref.SoftReference (always) Class:java.lang.ref.PhantomReference (always) Class:java.lang.ref.Finalizer (always) Class:java.lang.ref.FinalizerReference (always) ![图片说明](https://img-ask.csdn.net/upload/201702/10/1486711588_136805.png)

使用AlarmManager设置闹钟,但是在华为手机上一旦程序被清除,闹钟就失效了

使用AlarmManager设置闹钟,但是在华为手机上一旦程序被清除,闹钟就失效了。在中兴和魅族的手机上却一直有效。华为,你在EMUI里搞了什么鬼?

华为6.0权限申请问题..........................

为什么在华为手机6.0没有存在动态权限申请问题?是不是华为定制的系统对权限做了修改?

android 5.0之后如何获取当前运行的应用包名?

1,先看看android5.0之前的获取方法: // 1、得到当前运行的任务栈,参数就是得到多少个任务栈,1就是只拿一个任务栈 // 对应的也就是正在运行的任务栈啦 ,注意别忘了在清单文件中添加获取的权限 List<ActivityManager.RunningTaskInfo> runTaskInfos = activityManager.getRunningTasks(1); //拿到当前运行的任务栈 ActivityManager.RunningTaskInfo runningTaskInfo = runTaskInfos.get(0); //拿到要运行的Activity的包名 runningpackageName = runningTaskInfo.baseActivity.getPackageName(); 2,但是5.0之后这个方法失效了。搜索到如下解决方法: public static String getCurrentPkgName(Context context) { ActivityManager.RunningAppProcessInfo currentInfo = null; Field field = null; int START_TASK_TO_FRONT = 2; String pkgName = null; try { field = ActivityManager.RunningAppProcessInfo.class.getDeclaredField("processState"); } catch (Exception e) { e.printStackTrace(); } ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> appList = am.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo app : appList) { if (app.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { Integer state = null; try { state = field.getInt( app ); } catch (Exception e) { e.printStackTrace(); } if (state != null && state == START_TASK_TO_FRONT) { currentInfo = app; break; } } } if (currentInfo != null) { pkgName = currentInfo.processName; } return pkgName; } 3,然而上面的方法是得到却是当前Activity的进程名,一般进程名就是包名,但是如果在Manifest设置Activity的进程名,上面方法就无效了,如: <activity android:name="com.xxx.demo.DemoActivity" android:process=".aaa" /> Log.d(TAG, "当前包名:" + runningpackageName ); 06-05 11:09:44.284 32215-32276/com.xxx.demo D/AppService﹕ 当前包名:.aaa 4,除了上面获取方法,,求android 5.0之后获取当前运行的activity的包名的方法。

webrtc音视频通话,除了在华为手机上正常,其他手机均是远程视频黑屏情况

情况和问题描述: 最近在开发webrtc的音视频通话功能,本使用org.webrtc:google-webrtc:1.0.28513/这个版本开发,但是却发现远程视频显示不出来,过程没有任何报错,信令交互一切正常,我很疑惑,就将版本调整至org.webrtc:google-webrtc:1.0.24465@aar;让我惊喜的是在华为手机上正常了,远程和本地视频一切正常;但在1+、小米和红米等手机上无法正常显示出远程视频;本以为是没有video的candidate造成,但是经过华为手机反复测试和看log后发现,即使没有video的candidate都能正常显示出远程视频,所以我将这点给排除了;然后经过反反复复的测试和调整,华为手机只要不要用太新的webrtc版本就能正常,但其他手机均不正常;我在这个问题上已经纠结了两个星期,希望有大能能够帮助我。 这个问题实在很奇怪,没有报错,信令正常,交互正常,最终流能通,但就是无法显示远程视频;是解析的问题呢,还是渲染的问题,还是其他问题。很疑惑了,希望业界大佬指教!!! 正常截图: ![图片说明](https://img-ask.csdn.net/upload/201909/17/1568702658_848334.jpg) 异常截图: ![图片说明](https://img-ask.csdn.net/upload/201909/17/1568702684_763667.jpg) 然后经过log的反复查看,发现了以下的一个log,怀疑也可能有关系,本人webrtc小白,贴出讨论,虚心请教 ![图片说明](https://img-ask.csdn.net/upload/201909/17/1568702792_787513.png)

求救啊,华为p8用了超级挂载器,看不到文件了

本人用华为p8移动版,root了,想玩游戏,就下了个超级挂载器,结果刚开始能用,手机重启了之后,内置储存器和sd卡的文件就都看不见了,用es文件管理器,能看到SD卡被挂载到了/mnt/sdcard1/,内置储存器没找到挂在到哪了,然后我就傻逼一样把手机恢复出厂设置了,结果完蛋了,还是看不到文件,还没办法安装软件, 然后我又用华为助手的一键修复,结果root权限没了,但还是看不到文件,怎么办啊,求高手帮忙啊!谢谢了

华为Mate体验如何,有用过的么?

看网上介绍是挺不错的,但是不知道真用起来会怎么样 6.1寸屏,快顶个小平板了。 有用过的给介绍介绍

android 真机sqlite3调试问题

手机华为g621-tl00,系统EMUI3.0,Android版本4.4.4,没有自带sqlite3,按照网上的步骤下载4.4.2模拟器sqlite3到手机/system/xbin目录中,sqlite3版本3.7.11,可以运行,但是还是有问题。用root用户使用sqlite3命令,后面没有命令显示,但可以执行,而非root用户使用sqlite3命令有命令显示,请问这是什么原因。![图片说明](https://img-ask.csdn.net/upload/201509/14/1442229888_155203.jpg)这是root用户sqlite3命令结果;![图片说明](https://img-ask.csdn.net/upload/201509/14/1442230045_207247.jpg)这是非root用户sqlite3命令结果。

P9升级为EMUI5后不能访问后台的WebService

App调用后台的WebService进行访问。P9升级以前是EMUI4的, 升级为5后,就连不上后台的WebSercie了。后台没有任何变化 请问导致的原因是什么?怎么处理?

andiord自定义view部分机型导致程序闪退

在华为P9,EMUI4.1系统,andiord6.0版本 andiord自定义view,在new实例的时候会导致程序闪退, 注销掉自定义view程序可以运行 在小米MIUI8.5稳定版系统,andiord6.0版本 自定义view不出任何问题 请问这是什么原因,华为手机上如何解决?

APP在MIUI上运行,切换字体大小后没有调用onConfigurationChanged。

## 问题描述 需求是要保证APP的文字大小不受系统文字大小设置的影响。 我在搜索了相关问题之后,采用了重写getResource方法和onConfigurationChanged方法,同时在manifest文件中给activity进行配置的办法来解决这个问题。正常打开APP没有任何问题,字号确实不会随着系统设置而变化。 ([Android 兼容8.0 App全局字体调节、禁止App字体随系统字体大小而更改](https://blog.csdn.net/weitao_666/article/details/79745806 "") ) 但是这样做,在华为平板(揽阅M2青春版,Android 5.1.1,EMUI 3.1)上没有问题,在小米手机(米6,Android 8.0,MIUI 10.3稳定版)上,**切换了字号之后回到APP,APP会自尽(不是闪退,下面会说)**。 ## 代码展示 ### AndroidManifest.xml ``` <!-- 主界面 --> <activity android:name=".ui.MainActivity" android:configChanges="orientation|screenSize|keyboardHidden|fontScale|locale|layoutDirection|keyboard" android:exported="false" android:launchMode="standard" android:screenOrientation="portrait" android:windowSoftInputMode="stateAlwaysHidden|adjustPan"/> ``` ### BaseActivity.java ``` @Override public void onConfigurationChanged(Configuration newConfig) { LogHelper.customLogging("showControl",this.getClass().getName()+"执行了 onConfigurationChanged"); if (newConfig.fontScale != 1)//非默认值 getResources(); super.onConfigurationChanged(newConfig); } /** * 重写 getResource 方法,防止系统字体影响 */ @Override public Resources getResources() {//禁止app字体大小跟随系统字体大小调节 Resources resources = super.getResources(); if (resources != null && resources.getConfiguration().fontScale != 1.0f) { android.content.res.Configuration configuration = resources.getConfiguration(); configuration.fontScale = 1.0f; resources.updateConfiguration(configuration, resources.getDisplayMetrics()); } return resources; } ``` ## 日志信息 ### 这是我的米6的日志 ![图片说明](https://img-ask.csdn.net/upload/201909/03/1567488232_956169.png) 红线处执行的操作是: 1、APP进入后台;2、更改系统文字大小;3、APP回到前台; 可以看到mainActivity在完成了自己应该做的操作(销毁、创建、展示)后多做了一次销毁操作。而且onConfigurationChanged方法中的日志也没有被打印。 所以米6走的路径是相当于ManiFest文件中没有配置fontScale。 ### 这是华为平板的日志 ![图片说明](https://img-ask.csdn.net/upload/201909/03/1567489206_756279.png) 红线处操作同上 这里就执行了onConfigurationChanged方法,只需要重新显示一下activity就可以了。 ## 自己的分析 多了一个onDestroy,导致了APP还活着(AndroidStudio的Logcat一栏显示的包名后面没有DEAD字样),但是Activity已经没了,所以显示的是桌面,看起来是闪退一样,但其实只是他自尽了…… #**各位大神,救救孩子,这个问题怎么解决啊?!**

Android开发 Eclipse能连接自己手机,但无法安装软件到手机上

![图片说明](https://img-ask.csdn.net/upload/201509/22/1442922938_127736.png) 程序编好后,直接通过Eclipse装入手机时会控制台会显示这个错误,我确定自己的驱动已经装好,开发者模式已经打开,有没有人遇到过类似的情况,弄了几天了,还是搞不定,不得不伸手了,希望各位大神能帮我解答!感激不尽!

求助!退出activity保存当前页面状态。

有多份调查问卷,用一个ListView来显示问卷标题,选择不同标题进入具体的问卷内容。在进行问卷时,如果想要中途退出,暂存页面信息怎么办?? 页面包含文本信息,单选,多选等内容。 求大神解答![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)

安卓应用开发,应用开启服务在后台运行,息屏一段时间后被关了,找原因和解决方案。

# 1.描述问题: 【用于科研,非商业】安卓应用开发,需要保持应用长时间运行获取定位信息,应用开启后启动Activity,然后启动Service,保持Service一直在后台运行。考虑到我们是请一些人帮忙装上应用的,所以主要是想让用户将应用添加到保护名单中,来保证应用正常运行时能够长不被清理掉。 【功能】Service做的事情包括:监听亮屏息屏、获取加速度传感器数据、调用百度SDK获取定位(由于GPS耗电量大,目前一直仅用wifi、基站等较低功耗的定位方式在测试)、操作SQLite数据库、Service中开启一个Thread每隔20s查询下数据库,数据足够量如10条时发送数据到服务器,handler回调。 【ps】Service持有了PARTIAL_WAKE_LOCK,CPU电源锁。 【服务保活】使用了:1.保持前台Notification;2.在手机中添加到加速白名单、应用后台保护,从而防住了锁屏几秒就被清理;3. 1像素保活; 【设备】华为荣耀7;型号PLK-TL01H;EMUI4.0.3;安卓6.0;运行内存3.0GB; # 2.相关代码: 无。 # 3.报错信息: 无报错,尝试过Crash时记录下信息,然后下次打开时传输到服务器以便查看crash信息,但是发现没有发送。(这个发送crash信息的功能经人为增加int i=1/0;测试过,能够获取到除数不为0的报错信息) # 4.尝试过的方法及反馈: **1.对比测试**: 1.1 连接电脑,不拔出usb线,一天都不会被退出; 1.2 拔出usb,应用退到后台,保持亮屏,应用大半天都没被退出; 1.3 拔出usb,应用退到后台,息屏,应用普遍半小时到两个多小时内,会被退出; 1.4 尝试过,后台边播放音乐来保活,应用退到后台,息屏,能听到音乐,应用长时间没被退出; **2.捕获Crash信息:** 测试并使用了捕获Crash信息然后发送到服务器,发现运行一段时间然后被退出的情况下,不会有crash信息被捕获; **3.思考OOM:** 在思考是否因OOM导致内存不足而退出应用,但是似乎不像是这个原因,理由如下:1.没有crash信息;2.连接usb线运行一天也没有发现OOM;3.保持亮屏时长时间也没有被退出; # 5.相关截图: 无。 # 6.提问及思考,求解疑: Q1.什么原因,会导致应用在连接usb或者直接亮屏时能够持续运行,而息屏后被退出却捕获不到crash信息? A1:似乎并非OOM,而是被系统清理掉。 Q2:以上表现是否验证了“应用被系统清理掉”的假设?如果是被系统清理掉,那么能导致被系统清理掉的原因有哪些(梳理总结)? A2:当前觉得,是否是因为耗电量太大,导致应用会运行一段时间后被清理?并且这种清理是添加到内存加速白名单、应用后台保护,后仍然会生效的、能够清掉应用的?

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

美团面试,问了ThreadLocal原理,这个回答让我通过了

他想都想不到,ThreadLocal我烂熟于心

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

立即提问
相关内容推荐