目前即时尝试使用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) 我目前有一个带有标题的工具栏的导航抽屉,我希望将此标题置于工具栏中,但工具栏似乎没有考虑到抽屉图标,如下图所示.
而当我使用相同的工具栏布局用于不在导航抽屉内的其他活动时,标题完全居中,如下图所示:
那么如何让它考虑到这个图标呢?
这是我的布局:
<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) 我一直无法解决如何处理电话已经在某个区域内的情况startMonitoringForRegion?其他问题表明requestStateForRegion在didStartMonitoringForRegion此内部调用然后调用该方法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再次调用,因此当我只想要它时,区域会输入两次进入一次.我怎么能避免这个?
谢谢你的帮助.
解 …
我正在寻找一种在表格单元格中输入标签的方法,该表格单元格也有一个披露指标.我现在遇到的问题是,在计算标签的位置时似乎忽略了披露指标
下图是:

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

我遇到了一个方向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)
所以我得到的答案如下,我无法控制:
{
"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) 所以我有这段代码可以无限次地为一组图像设置动画,但是一旦我尝试限制它的动画次数,它就根本不起作用。甚至不显示图像。
有效的代码:
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)
这似乎是非常奇怪的行为?
如何在 JavaScript 中使用 less.js 函数?
我想在普通 JavaScript 中使用此处找到的 mix 函数,因此:
$('.orange-text').css({
color: less.mix('#FF6B3A','#6600CC','50%')
});
Run Code Online (Sandbox Code Playgroud)
但它总是未定义,我似乎找不到任何关于如何引用该函数的文档,但肯定有可能吗?
ios ×3
android ×2
java ×2
objective-c ×2
clregion ×1
constraints ×1
geofencing ×1
gson ×1
javascript ×1
jquery ×1
json ×1
less ×1
sax ×1
uiimageview ×1
uitableview ×1
xml ×1
xml-parsing ×1