小编Joe*_*her的帖子

如何在Java中解析大(50 GB)XML文件

目前即时尝试使用SAX Parser但是大约3/4通过文件它只是完全冻结,我已经尝试分配更多的内存等但没有得到任何改进.

有什么方法可以加快速度吗?一个更好的方法?

将它剥离到裸骨,所以我现在有以下代码,当在命令行中运行时,它仍然没有我想要的那么快.

使用"java -Xms-4096m -Xmx8192m -jar reader.jar"运行它我得到的GC开销限制超出了文章700000

主要:

public class Read {
    public static void main(String[] args) {       
       pages = XMLManager.getPages();
    }
}
Run Code Online (Sandbox Code Playgroud)

XMLManager

public class XMLManager {
    public static ArrayList<Page> getPages() {

    ArrayList<Page> pages = null; 
    SAXParserFactory factory = SAXParserFactory.newInstance();

    try {

        SAXParser parser = factory.newSAXParser();
        File file = new File("..\\enwiki-20140811-pages-articles.xml");
        PageHandler pageHandler = new PageHandler();

        parser.parse(file, pageHandler);
        pages = pageHandler.getPages();

    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) …
Run Code Online (Sandbox Code Playgroud)

java xml sax xml-parsing

23
推荐指数
1
解决办法
3万
查看次数

Android中心标题带导航抽屉

我目前有一个带有标题的工具栏的导航抽屉,我希望将此标题置于工具栏中,但工具栏似乎没有考虑到抽屉图标,如下图所示.

偏离中心

而当我使用相同的工具栏布局用于不在导航抽屉内的其他活动时,标题完全居中,如下图所示:

在此输入图像描述

那么如何让它考虑到这个图标呢?

这是我的布局:

<android.support.design.widget.AppBarLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:theme="@style/Theme.App.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/black"
        app:popupTheme="@style/Theme.App.PopupOverlay">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/toolbar_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:textColor="@color/white"
                android:textStyle="bold"
                android:text="Title"
                android:textSize="16sp" />

        </RelativeLayout>

    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer android-toolbar

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

iOS Geofence,监控启动时如何处理内部区域?

我一直无法解决如何处理电话已经在某个区域内的情况startMonitoringForRegion?其他问题表明requestStateForRegiondidStartMonitoringForRegion此内部调用然后调用该方法didDetermineState: forRegion:.所以代码看起来像这样:

- (void)viewDidLoad {
    //location manager set up etc...
    for (Object *object in allObjects){

        CLRegion *region = [self geofenceRegion:object];
        [locationManager startMonitoringForRegion:region];
     }
}

- (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region {

    [self.locationManager requestStateForRegion:region];
    [self.locationManager performSelector:@selector(requestStateForRegion:) withObject:region afterDelay:5];
 }

- (void)locationManager:(CLLocationManager *)manager
  didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region {

    if (state == CLRegionStateInside){
        [self locationManager:locationManager didEnterRegion:region];
    }  
}
Run Code Online (Sandbox Code Playgroud)

现在显然geofenceRegion方法是我自己的并且它工作正常,并且对象包含lat long和radius之类的东西,并且一切正常,所以这不是问题.

无论如何,上面代码的问题在于,如果用户在将区域添加到其设备时已经在区域内(即完成了didEnterRegion),它确实有效.然而问题是,didDetermineState: forRegion:每次根据apple docs划分其中一个边界区域时,也会调用该方法:

只要存在区域的边界转换,位置管理器就会调用此方法.除了调用locationManager:didEnterRegion:和locationManager:didExitRegion:methods之外,它还调用此方法.位置管理器还调用此方法以响应对其requestStateForRegion:方法的调用,该方法以异步方式运行.

现在正因为每次输入一个区域,didEnterRegion会自动调用,但随后会再次调用它,因为didDetermineState: forRegion:它也会根据apple docs自动调用,这会导致didEnterRegion再次调用,因此当我只想要它时,区域会输入两次进入一次.我怎么能避免这个?

谢谢你的帮助.

解 …

cllocationmanager ios geofencing clregion

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

iOS中心UITableViewCell标签带有披露指示器

我正在寻找一种在表格单元格中输入标签的方法,该表格单元格也有一个披露指标.我现在遇到的问题是,在计算标签的位置时似乎忽略了披露指标

下图是:

图片

因此,您可以看到标签位于单元格左侧和指示器左侧之间的区域中,如果它位于单元格的中心,则它将位于导航栏标题下方.

感谢任何帮助谢谢

从故事板中

在此输入图像描述

constraints objective-c uitableview ios

7
推荐指数
2
解决办法
1796
查看次数

Android-'sensorPortrait'方向不起作用

我遇到了一个方向sensorPortrait不起作用的问题,我尝试通过清单和活动本身启用

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
Run Code Online (Sandbox Code Playgroud)

但这似乎只是在正常人像模式下锁定,但是如果我尝试`fullSensor'

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
Run Code Online (Sandbox Code Playgroud)

根据文档

方向由设备方向传感器针对4个方向中的任何一个确定。这类似于“传感器”,除了它允许4种可能的屏幕方向中的任何一种,而与设备的正常运行方式无关(例如,某些设备通常不会使用反向肖像或反向风景,但是启用了这些功能)。在API级别9中添加。

正是这样,所有四个方向都是可能的。如果我也尝试

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
Run Code Online (Sandbox Code Playgroud)

我能够获得反向​​肖像,这使我回到原来的问题,为什么不起作用sensorPortrait?看起来它与文档“ fullSensor”中的这一行有关

不管设备通常会做什么(例如,某些设备通常不会使用反向肖像或反向风景,但是启用了这些功能)

那么我如何启用它,这有可能吗?为什么fullSensor似乎要覆盖它而不是sensorPortrait?我似乎找不到任何提及方法。这个问题表明PhoneWindowManager对此负有责任。

理想的解决方案是否只是根据通过返回的值来创建OrientationEventListener()和手动调用?setRequestedOrientation()onOrientationChanged(int orientation)

android

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

如何通过Gson java传递这个转义的Json?

所以我得到的答案如下,我无法控制:

{
    "message": "someName someLastName has sent you a question",
    "parameters": "{\"firstName\":\"someName\",\"lastName\":\"someLastName\"}",
    "id": 141
}
Run Code Online (Sandbox Code Playgroud)

一目了然看起来很简单,但参数元素需要作为json对象读取,我不能为我的生活找出如何做到这一点.这就是我现在正在尝试的:

JsonObject parameters = data.getAsJsonObject().get("parameters").getAsJsonObject();
/throws java.lang.IllegalStateException: Not a JSON Object: "{\"firstName\":\"someName\",\"lastName\":\"someLastName\"}"
Run Code Online (Sandbox Code Playgroud)

所以我尝试过:

String elementToString = data.getAsJsonObject().get("parameters").toString().replace("\\\"", "\"");
JsonObject parameters = new Gson().fromJson(elementToString, JsonElement.class).getAsJsonObject();
//throws com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 5 path $
Run Code Online (Sandbox Code Playgroud)

数据的位置(通常是从服务器中提取的):

JsonElement data = new Gson().fromJson("  {\n" +
        "    \"message\": \"someName someLastName has sent you a question\",\n" +
        "    \"parameters\": \"{\\\"firstName\\\":\\\"someName\\\",\\\"lastName\\\":\\\"someLastName\\\"}\",\n" +
        "    \"id\": 141\n" …
Run Code Online (Sandbox Code Playgroud)

java json gson

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

UIImageView animationRepeatCount 奇怪的行为

所以我有这段代码可以无限次地为一组图像设置动画,但是一旦我尝试限制它的动画次数,它就根本不起作用。甚至不显示图像。

有效的代码:

animatedMap.animationImages = [NSArray arrayWithObjects:
                               [UIImage imageNamed:@"0.gif"],
                               [UIImage imageNamed:@"1.gif"],
                               [UIImage imageNamed:@"2.gif"],
                               [UIImage imageNamed:@"3.gif"],
                               //etc...];
animatedMap.animationDuration = 20.0f;
animatedMap.animationRepeatCount = 0;
[animatedMap startAnimating];
Run Code Online (Sandbox Code Playgroud)

不起作用的代码:

animatedMap.animationImages = [NSArray arrayWithObjects:
                               [UIImage imageNamed:@"0.gif"],
                               [UIImage imageNamed:@"1.gif"],
                               [UIImage imageNamed:@"2.gif"],
                               [UIImage imageNamed:@"3.gif"],
                               //etc...];
animatedMap.animationDuration = 20.0f;
animatedMap.animationRepeatCount = 1;
[animatedMap startAnimating];
Run Code Online (Sandbox Code Playgroud)

这似乎是非常奇怪的行为?

objective-c uiimageview ios

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

如何在 JavaScript 中调用 Less.js 函数?

如何在 JavaScript 中使用 less.js 函数?

我想在普通 JavaScript 中使用此处找到的 mix 函数,因此:

$('.orange-text').css({
    color: less.mix('#FF6B3A','#6600CC','50%')                       
});
Run Code Online (Sandbox Code Playgroud)

但它总是未定义,我似乎找不到任何关于如何引用该函数的文档,但肯定有可能吗?

javascript jquery less

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