我的Windows默认编码是GBK,我的Eclipse完全是utf-8编码的.
因此,在我的Eclipse中运行良好的应用程序崩溃,因为在导出为jar文件时单词变得不可读;
我必须在.bat文件中编写以下行来运行该应用程序
start java -Dfile.encoding=utf-8 -jar xxx.jar
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,我可以在源代码中编写一些内容来设置应用程序使用(或jvm运行)utf-8而不是系统的默认编码.
ResultSet当我关闭时,似乎会自动关闭Connection.但我想返回ResultSet并在另一种方法中使用它,然后我不知道在哪里关闭Connection和PreparedStatement.
public ResultSet executeQuery(String sql, String[] getValue)
{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
conn = getConn();
pstmt = conn.prepareStatement(sql);
if (getValue != null)
{
for (int i = 0; i < getValue.length; i++)
{
pstmt.setString(i + 1, getValue[i]);
}
}
rs = pstmt.executeQuery();
} catch (Exception e)
{
e.printStackTrace();
closeAll(conn, pstmt, rs);
}
return rs;
}
Run Code Online (Sandbox Code Playgroud)
我已经closeAll(conn, pstmt, null);进入了catch区块,因为我发现如果我把它放在finally块中,我会rs …

现在上面的图片是"太多选项卡"的示例,默认情况下显示为多行.
但我想在一行中进行水平滚动,在开始标签之前和最后一个标签之后添加两个箭头,或者自动滚动都可以.
我的应用程序的主要活动是Activity包含Webview加载网页的活动.
我重写该方法shouldOverrideUrlLoading(WebView view, String url)以使每个URL请求调用Intent并加载包含的新相同活动WebView.
这样做是为了在按下BACK键时提供更好的体验,只需完成当前活动并返回到前一个活动,与单个webview中的goBack()相比,不需要再次渲染页面.
但现在的问题是,在我打开许多URL后,在后台创建一个长队列活动时,它使用的内存变得很大.
当我回到启动器并检查进度时,我可以看到我的应用程序缓存超过200M的数据.这是不可接受的......
有趣的是,我可以看到我的应用程序耗尽我的内存,但在Eclipse中的DDMS的Heap视图中,我可以看到应用程序分配的内存不超过10M.所以我猜200M是webStorage缓存的Webview吗?
有没有办法控制记忆?
我正在考虑一次只保存5层活动,当回去5次时,只需跳回主页.但是仍然不知道如何在我需要的5个活动旁边释放内存,我将永远不会再使用它?
或者,如果是因为WebView保持网页自动缓存,我该如何手动管理?比如设置最大缓存大小或页数的限制?
我知道已经有一些应用程序可以做到这一点,例如:
我想知道如何在我的应用程序中执行此操作?我可以使用哪些课程?或者我应该读什么文章?我不想改变Android的源代码.
而且我想知道当屏幕被绘制图案锁定时是否会有所不同?
这是我的manifest.json
{
"name": "Environment Quick Switch",
"version": "1.0",
"description": "Quick switch around develop environments.",
"browser_action": {
"default_icon": "icon.png",
"popup": "action.html"
},
"permissions": [
"tabs", "http://*/*", "https://*/*"
]
}
我在开发模式下加载它的文件夹是可以的,但在我打包它并尝试安装.crx文件后,出现了Manifest file is invalid问题.
有谁知道如何处理这个?
我试图抓住鼠标点击位置,所以我onClick在body标签中写了一个,但每次点击页面时整个页面都会变成橙色一段时间.是否有任何设置可以禁用此操作?
我将a序列化为一个ArrayList<packageA.Changelog> list文件并将文件传输到另一台机器中的另一个系统.
因为它是一个接收文件的不同系统,所以我没有相同的packageA.Changelog类,而是packageB.Changelog具有完全相同的结构但是在不同的包中.
当我使用时
ArrayList<packageB.Changelog> changelogs = (ArrayList<packageB.Changelog>)ois.readObject();
从我得到的文件中读出来ClassCastException.
如何避免这种异常?我是否需要在其他系统中创建相同的包结构才能接收列表?
我从GIT下载并编译了源代码,并成功运行了与代码一起编译的模拟器.
然后我设法用来mmm android/packages/inputmethods/LationIME 编译LatinIME,
并使用adb install -r android/out/target/product/generic/system/app/LatinIME.apk它安装得很好.
但这只适用于我自己编译的AVD,当我尝试通过相同的命令将LatinIME.apk复制的表单安装android/out/target/product/generic/system/app/到另一个模拟器或真实手机时:adb install -r LatinIME.apk,我收到消息:
165 KB/s (568039 bytes in 3.343s)
pkg: /data/local/tmp/LatinIME.apk
Failure [INSTALL_FAILED_OLDER_SDK]
我用Google搜索了很多东西并尝试了他们所说的话:
<uses-sdk android:MinSdkVersion="3">在"LatinIME/AndroidManifest.xml"文件中 添加该行
修改android/build/core/version_defaults.mk,将行更改DEFAULT_APP_TARGET_SDK := $(PLATFORM_SDK_VERSION)为DEFAULT_APP_TARGET_SDK := 8
我甚至重新下载了源代码,我第一次下载的是API级别为10的默认最新版本,第二次下载API级别9的代码,两者都无法编译可以安装在其他模拟器中的pak在API级别8或9或10.
我认为可能是因为我编写的SDK是AOSP版本所以它不能安装在官方发布的SDK中?我不太清楚差异.
任何拥有源代码的人都可以尝试mmm android/packages/inputmethods/LationIME查看生成的apk是否可以安装在官方SDK版本中?
我制作了一个程序,其主要功能是使用API来拍照并将它们存储在我给出的路径中.
但是,与我在模拟器或手机上使用Google的原始ROM进行测试时相比,不同手机上的内容并不合适.
理论上.如果我给出了Intent的路径,那么照片不应出现在手机的默认图库中,但是在MOTO Defy上,照片存储在我的路径和默认图像目录中.在三星上,当我从相机Intent返回时,我的应用程序会无声地崩溃.只有在某些手机上我可以通过按相机活动中的菜单按钮调出菜单.甚至其中一些将照片保存为我在Camera Activity的设置菜单中设置的尺寸.
我认为这是因为制造商在他们的手机上定制了ROM,因此Camera Activity的行为不同.
有谁知道如何避免这种情况?或者有没有其他方式来拍照而不是意图"android.media.action.IMAGE_CAPTURE"?
以下是我拍摄照片的代码.
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getpath()+"_.jpg")));
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud) 一般建议Handler.post()在Android中使用时需要在不同的线程中做一些工作.
当我想在后台做一些工作时,我被建议开始了Service.
但是我觉得使用起来比较方便new Thread (new Runnable(){...} );.
但是我担心手动创建新线程可能会在Android中表现不同,例如可能在内存不足时自动停止而在使用时Service可能不会?
希望得到一个明确的答案,帮助我摆脱这种困惑.^ ^
//This source is a line read from a file
String src = "23570006,music,**,wu(),1,exam,\"Monday9,10(H2-301)\",1-10,score,";
//This sohuld be from a matcher.group() when Pattern.compile("\".*?\"")
String group = "\"Monday9,10(H2-301)\"";
src = src.replaceAll("\"", "");
group = group.replaceAll("\"", "");
String replacement = group.replaceAll(",", "#@");
System.out.println(src.contains(group));
src = src.replaceAll(group, replacement);
System.out.println(group);
System.out.println(replacement);
System.out.println(src);
Run Code Online (Sandbox Code Playgroud)
我正在尝试更换两者","之间,\"s所以我可以使用String.split()后者.
但以上只是不起作用,结果是:
true
Monday9,10(H2-301)
Monday9#@10(H2-301)
23570006,music,**,wu(),1,exam,Monday9,10(H2-301),1-10,score,
Run Code Online (Sandbox Code Playgroud)
但是当我将src字符串更改为
String src = "123\"9,10\"123";
String group = "\"9,10\"";
Run Code Online (Sandbox Code Playgroud)
它运作良好
true
9,10
9#@10
1239#@10123
Run Code Online (Sandbox Code Playgroud)
字符串有什么问题???
系统的主机文件很好,127.0.0.1 localhost有没有...
Ping 127.0.0.1,或者我的IP,结果也很好..
Myeclipse的版本是8.0,我只是在其中使用Tomcat.部署了
一个简单的JSP + Javabean Web项目so.
现在的情况是,当我打开的MyEclipse和启动Tomcat,我可以访问我的网站穿透式
http://localhost:8080/so/index.jsp,它显示和运行良好(这意味着8080端口是没事吧?),不过http://127.0.0.1:8080/so/index.jsp是一个空白页(没有源代码)在在IE中找不到K-Meleon和页面.
当我试图从局域网中的另一台PC上访问它时,' http:// myIP:8080/so/index.jsp ',它只能工作一点点.浏览器可以加载主页,但没有CSS,点击任何链接甚至刷新页面都会导致错误页面.(虽然该站点在我自己的PC上通过localhost访问得很好)
有没有人遇到过这种情况?
android ×6
java ×6
javascript ×2
webview ×2
api ×1
apk ×1
caching ×1
camera ×1
coding-style ×1
command-line ×1
connection ×1
css ×1
encoding ×1
file ×1
handler ×1
jar ×1
jdbc ×1
jquery ×1
jsp ×1
localhost ×1
lockscreen ×1
manifest ×1
memory ×1
myeclipse ×1
package ×1
photo ×1
regex ×1
resultset ×1
sdk ×1
service ×1
string ×1
tabs ×1
tomcat ×1
unlock ×1