小编cra*_*s84的帖子

robospice如何管理活动生命周期?

我正在寻找android robospice库如何管理活动生命周期的技术答案.从入门页面:

https://github.com/octo-online/robospice/wiki/Starter-Guide

"作为Activity(或其他上下文)的内部类,添加一个将更新UI的RequestlListener.不要担心内存泄漏,RoboSpice会管理您活动的生命周期."

我的问题是robospice如何自动更新请求侦听器,以便它仍然能够在轮换后以及在活动被销毁并重新创建为新实例之后使用正确的上下文调用正确的侦听器?

我一直试图对源代码进行反向工程,但还没有找到答案:

https://github.com/octo-online/robospice

android asynchronous robospice

10
推荐指数
1
解决办法
2301
查看次数

Jellybean/ICS Android HTTP Post方法+ WebView.RestoreState

我正在使用API​​ 17模拟器来测试包含Web视图的页面.

  1. webview首先使用GET方法加载页面.
  2. 然后,用户使用HTTP POST方法提交Web表单,这会导致加载第二页.
  3. 此时如果我旋转屏幕,我会收到"网页不可用"错误,如下所示.仅当使用POST方法加载页面时才会出现这种情况.注意:我正在尝试使用webview.restoreState恢复webview的状态(请参阅下面的代码).有没有办法告诉Android重新发布表单数据并重新加载页面而不是显示此错误消息?!

我无法在KitKat,Lollipop或Gingerbread上重现同样的问题......到目前为止,我只能在Jellybean和Ice Cream Sandwich上重现这个问题......

我也确认这是运行Jellybean的实际Nexus 7设备的一个问题,因此它不仅仅是一个模拟器问题.

注意:我使用android:configChanges ="orientation | keyboardHidden"之类的东西并不是特别有趣.据我了解,这可能会解决我的轮换问题,但如果由于其他原因需要恢复活动状态,问题仍可能重新出现.


截图:

步骤#1:正常加载WebView

步骤1

步骤#2:提交表单(使用HTTP Post方法)

第2步

步骤3:旋转屏幕以触发webview.restoreState - 发生错误

第3步


码:

以下是一些与我的问题相关的示例代码.代码在Mono C#中,但应该与Java非常相似.

public class MainActivity : Activity
{
    WebView webview;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        webview = new WebView(this);
        SetContentView(webview);

        if (bundle == null)
            webview.LoadUrl("http://2-dot-npwc-services.appspot.com/test-post.jsp");
        else
            webview.RestoreState(bundle);
    }

    protected override void OnSaveInstanceState(Bundle bundle)
    {
        base.OnSaveInstanceState(bundle);
        webview.SaveState(bundle);
    }
}
Run Code Online (Sandbox Code Playgroud)

执行POST方法的示例HTML页面如下所示:

<html>
<form action="test-post.jsp" method="post">
<input type="text" name="test" value="test"/>
<input type="submit"/>
</form>

<p>You entered: <%=request.getParameter("test")%></p>
</html>
Run Code Online (Sandbox Code Playgroud)

android http-post webview

9
推荐指数
1
解决办法
388
查看次数

Android TextView vs WebView Font Rendering

I have a TextView placed directly above a WebView. I am attempting to make the font style in the WebView match the font style in the TextView.

I was able to make the fonts the same size but there are still minor differences between the fonts' rendering (see screenshot comparison). Now I think this is very minor but our client was able to see the difference and was questioning it.

Is there any way to eliminate these rendering differences between …

fonts android textview webview

5
推荐指数
1
解决办法
1027
查看次数

用神经网络求解Y = X*X + b型公式

2014年6月6日更新:我已经更新了问题,以便我尝试解决非线性方程.正如你们许多人所指出的,我不需要额外的复杂性(隐藏层,sigmoid函数等)来解决非线性问题.

此外,我意识到除了神经网络之外,我甚至可以使用其他方法来解决这样的非线性问题.我不是要编写最有效的代码或最少量的代码.这纯粹是为了让我更好地学习神经网络.


我已经创建了自己的反向传播神经网络实现.

在训练解决简单的XOR操作时,它工作正常.

但是现在我想调整它并训练它来解决Y = X*X + B类型的公式,但是我没有得到预期的结果.训练后,网络无法计算出正确的答案.神经网络是否非常适合解决这样的代数方程?我意识到我的例子是微不足道的我只是想了解更多关于神经网络及其能力的知识.

我的隐藏层使用sigmoid激活函数,我的输出层使用身份函数.

如果你能分析我的代码并指出任何错误,我将不胜感激.

这是我的完整代码(C#.NET):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NeuralNetwork
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Training Network...");

            Random r = new Random();
            var network = new NeuralNetwork(1, 5, 1);
            for (int i = 0; i < 100000; i++)
            {
                int x = i % 15;
                int y = x * x + 10;
                network.Train(x);
                network.BackPropagate(y);
            }

            //Below should output 20, but instead outputs …
Run Code Online (Sandbox Code Playgroud)

c# backpropagation neural-network

5
推荐指数
1
解决办法
1529
查看次数

android如何在片段分离/附加中保留视图状态

我有一个标签主机控件,使用片段加载标签.

每次切换选项卡时,它都会分离旧片段并附加新片段.

我注意到在此过程中调用了OnCreateView方法,并且由于每次重新创建视图,因此我的很多状态都会丢失.但是我注意到一些视图状态,例如编辑文本的值正在分离/附加中保持.

我想知道当视图被完全销毁并重新创建为新视图时,Android如何自动恢复状态.当我只是切换标签时,Bundle savedInstanceState的值始终为null.Bundle savedInstanceState仅在我执行旋转屏幕等操作时才会填充.

据我所知,恢复状态正好在调用片段onStart方法之前发生.

tabs android state fragment

2
推荐指数
1
解决办法
3413
查看次数

Android Webview的ClearCache非常慢

我在Android应用程序中使用WebViews,我需要阻止WebViews缓存.

不幸的是,似乎这个看似简单的目标几乎是不可能实现的.我使用的解决方案是在onPageFinished事件中执行webview.clearCache(true),以便每次加载页面时都清除缓存.有一些问题......

我注意到随着缓存的增长,执行clearCache方法变得非常耗时.有时,如果执行clearCache然后切换到包含不同webview的不同Activity,则该webview将不会加载几秒钟,因为它仍在等待先前的clearCache操作完成.

更糟糕的是,在缓存已经被清除之后,对clearCache的后续调用的执行时间似乎没有减少.如果对clearCache的调用需要3秒才能完成,然后我立即再次调用clearCache,那么我希望第二次调用clearCache几乎立即完成.但那不是我所经历的; 我遇到第二次调用clearCache仍然需要大约3秒钟.

还有其他人经历过这个吗?有什么方法可以提高性能吗?加载webview(从本地文件系统)等待2-3秒是非常可怕的.

编辑:

这是我实际清除缓存的最佳选择.它或多或少有效,但它有点片状,我不是百分之百满意(用Mono c#编写):

public class NoCacheWebClient : WebViewClient
{
    string previous;

    public override void OnPageStarted(WebView view, string url, Android.Graphics.Bitmap favicon)
    {
        base.OnPageStarted(view, url, favicon);

        if (!string.Equals(previous, url))
        {
            previous = url;
            view.Reload(); //re-load once to ignore cache
        }
        else
        {
            previous = null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

android caching webview clear-cache

2
推荐指数
1
解决办法
6071
查看次数

NodeJs/Express 请求被 SetTimeout 阻止?

在下面的示例中,我在返回响应之前引入了 10 秒的人为延迟。

但是,如果我在两个单独的选项卡中并行打开页面,则第二个请求将被阻止,并且在第一个请求完成之前不会开始处理。换句话说,直到第一个请求完全完成后(10 秒后)才会显示第二个“输入方法”。

为什么第二个请求被阻止?我认为 NodeJs 不应该在异步代码运行时阻塞。

app.get('/', function (req, res) {
    console.log('entering method');

    setTimeout(() => {
        res.send('hello world');
    }, 10000);
});
Run Code Online (Sandbox Code Playgroud)

asynchronous node.js express

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