相关疑难解决方法(0)

WebView线程永不停止(WebViewCoreThread,CookieSyncManager,http [0-3])

我使用WebView在我们的某个应用程序的活动中显示一些互联网内容.
问题是,当用户切换到此活动时,WebView的线程会继续运行!
有问题的线程是:

Thread [<17> WebViewCoreThread] (Running)
Thread [<25> CookieSyncManager] (Running)
Thread [<19> http0] (Running)
Thread [<29> http1] (Running)
Thread [<31> http2] (Running)
Thread [<33> http3] (Running)
Run Code Online (Sandbox Code Playgroud)

暂停这些线程中的每一个,并检查它正忙于做什么:

Thread [<17> WebViewCoreThread] (Suspended)
    Object.wait(long, int) line: not available [native method]
    MessageQueue(Object).wait() line: 288
    MessageQueue.next() line: 148
    Looper.loop() line: 110
    WebViewCore$WebCoreThread.run() line: 471
    Thread.run() line: 1060

Thread [<25> CookieSyncManager] (Suspended)
    Object.wait(long, int) line: not available [native method]
    MessageQueue(Object).wait(long) line: 326
    MessageQueue.next() line: 144
    Looper.loop() line: 110
    CookieSyncManager(WebSyncManager).run() line: 90
    Thread.run() line: 1060 …
Run Code Online (Sandbox Code Playgroud)

multithreading android webview

34
推荐指数
3
解决办法
4万
查看次数

如何在Android后台服务中运行cordova插件?

我正在研究在cordova上开发的移动应用程序.我想实现一个后台服务,它做一些工作,比如打开套接字连接同步本地数据库和远程服务器,并通知用户新的远程推送等.关键是我在javascript中实现了这个代码,但我想在后台执行它.

我在互联网上搜索了一个cordova后台服务插件.

我已经阅读了一些关于android中后台服务的主题,这些是我发现的有用的:

所以我开始编写cordova插件(主要是在android上)来在后台执行javascript代码.我从后台服务创建了一个webview来执行它的javascript.这在我执行普通的javascript时工作正常但是当涉及到cordova插件时,它失败了,例如设备device.uuid给出的null.

这是java服务代码:

      public void onStart(Intent intent, int startId) {
      Toast.makeText(this, "My Happy Service Started", Toast.LENGTH_LONG).show();

           createBackGroundView();
           super.onStart(intent,startId);
    }


      public void createBackGroundView(){


        WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
       LayoutParams params = new WindowManager.LayoutParams(
                   android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
                   android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
                   WindowManager.LayoutParams.TYPE_PHONE,
                   WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                   PixelFormat.TRANSLUCENT
           );

        params.gravity = Gravity.TOP | Gravity.LEFT;
        params.x = 0;
        params.y = 0;
        params.width = 200;
        params.height = 200;

        LinearLayout view = new LinearLayout(this);

        view.setLayoutParams(new RelativeLayout.LayoutParams( …
Run Code Online (Sandbox Code Playgroud)

javascript mobile android webview cordova

24
推荐指数
2
解决办法
3万
查看次数

keepRunning PhoneGap/Cordova

任何人都可以向我解释keepRunning如何在Android的config.xml中工作.

我的意思是,我不想知道如何编写指令,但它是如何工作的,它如何影响Android应用程序的执行?它是否在后台创建服务?

如果有人能找到我们可以看到它如何工作的来源,那将是伟大的

谢谢.

编辑:我尝试分析生成的代码,分析Android设置中的RAM,服务和进程.而我的结论是.....什么都不做.如果您尝试使用GPS制作跟踪用户的应用,请不要使用Cordova.要正确跟踪用户,您需要使用START_STICKY选项创建服务.所以,它是在本机代码中.你失去了对CrossPlatform的兴趣,因为你必须为所有平台重新编码服务,在我看来,Native Service和Cordova App之间的通信并不容易.

在结论中,如果你使用Cordova,你必须知道你不能使用所有原生的力量,你必须做出选择: - 简单的dev(主观)和crossplaform(真正的跨平台?)和 - 本机开发与它的力量和没有兼容性问题,但您必须为一个平台制作一个应用程序

android android-service cordova

7
推荐指数
1
解决办法
5067
查看次数