我这里有一个将数据从远程服务器下载到文件的功能.我对我的代码仍然没有信心.我的问题是,如果在读取流并将数据保存到文件中并且突然我在互联网上断开连接时,下面的这些捕获异常会真的能够捕获到那种事件吗?如果没有,你能建议如何处理这类事件吗?
注意:我在一个线程中调用此函数,以便不阻止UI.
public static boolean getFromRemote(String link, String fileName, Context context){
boolean dataReceived = false;
ConnectivityManager connec = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connec.getNetworkInfo(0).isConnected() || connec.getNetworkInfo(1).isConnected()){
try {
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(link);
HttpParams params = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params, 30000);
HttpConnectionParams.setSoTimeout(params, 30000);
HttpResponse response;
response = httpClient.execute(httpGet);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200){
HttpEntity entity = response.getEntity();
InputStream in = null;
OutputStream output = null;
try{
in = entity.getContent();
String secondLevelCacheDir = context.getCacheDir() + fileName;
File imageFile …
Run Code Online (Sandbox Code Playgroud) 我正在尝试打开JPEG图像的远程Stream并将其转换为Bitmap对象:
BitmapFactory.decodeStream(
new URL("http://some.url.to/source/image.jpg")
.openStream());
Run Code Online (Sandbox Code Playgroud)
解码器返回null,在日志中我得到以下消息:
DEBUG/skia(xxxx): --- decoder->decode returned false
Run Code Online (Sandbox Code Playgroud)
注意:
1.内容长度不为零,内容类型为image/jpeg
2.当我在浏览器中打开URL时,我可以看到图像.
我在这里失踪的是什么?
请帮忙.谢谢.
我正在考虑使用Thread.setDefaultUncaughtExceptionHandler(...)
call 为我的(Android)移动应用程序(使用Java语法)设置一个全局的默认Exception处理程序.我想只是向用户显示带有适当消息的警报对话框.
设置时是否需要遵循任何问题,警告和规则 DefaultExceptionHandlers
?任何最佳实践,如确保进程被杀死,完整的堆栈跟踪写入日志等?
可以为文档,教程等提供相关信息的链接值得欢迎.
谢谢.
我需要将图像上传到远程PHP服务器,该服务器需要HTTPPOST中的以下参数:
*$_POST['title']*
*$_POST['caption']*
*$_FILES['fileatt']*
Run Code Online (Sandbox Code Playgroud)
大多数互联网搜索建议:
下载以下类并尝试使用MultiPartEntity发送请求:
apache-mime4j-0.5.jar
httpclient-4.0-beta2.jar
httpcore-4.0-beta3.jar
httpmime-4.0-beta2.jar
Run Code Online (Sandbox Code Playgroud)
要么
使用URLconnection并自己处理多部分数据.
顺便说一下,我热衷于使用HttpClient类而不是java.net(或者是android.net)类.最后,我从Android源代码下载了Multipart类,并在我的项目中使用它们.
虽然这可以通过任何上述方法来完成,但我想确定这些是否是实现上述目标的唯一方法.我浏览了文档并找到了一个FileEntity
课程,但我无法让它工作.
在Android应用程序中完成此操作的正确方法是什么?
谢谢.
我试图使用Pull解析器解析Android上的Rss2.0提要.
XmlPullParser parser = Xml.newPullParser();
parser.setInput(url.open(), null);
Run Code Online (Sandbox Code Playgroud)
feed XML的序言说编码是"utf-8".当我打开远程流并将其传递给我的Pull Parser时,我得到了无效的令牌,文档没有很好的异常.
当我保存XML文件并在浏览器(FireFox)中打开它时,浏览器报告文件中存在Unicode 0x12字符(严重重音?)并且无法呈现XML.
假设我对返回的XML没有任何控制权,处理此类情况的最佳方法是什么?
谢谢.
我在onLowMemory()回调中添加了一些指令,并希望对它进行测试.是否有"直接"方法来测试应用程序子类的onLowMemory函数?
或者我是否必须通过启动许多应用程序并执行内存密集型任务来使手机超载?
谢谢.
我需要在我的应用程序中使用自定义字体.
问题:对于ListViews
包含具有ellipsize
属性设置为true的多行TextView的行,我可以在省略号后看到一些难以理解的字符.显然,Android会使用我的自定义字体未知的某些字符(ZERO WIDTH NO BREAK-SPACE)填充字符串(在TextView中).
单行TextView似乎工作得很好.
隐藏这些字符或删除填充的最佳方法是什么?此外,是否有任何Helvetica字体的变体,可以免费获得ZERO WIDTH NO BREAK-SPACE字符?
谢谢.
我在Android中创建了一个应用程序小部件,并希望为其添加一些基于手势的功能.例如:当用户滑动时,显示新的数据集.AppWidgets不支持AFAIK手势,但我见过具有类似功能的小部件(例如HTC小部件相册和天气小部件).
请帮助我,让我知道我是否遗漏了什么.
欢迎链接到教程,文档或示例代码.
谢谢.
根据发行说明,StageFright取代了GingerBread版本中的OpenCore框架.似乎有很多讨论说:从Android 2.3开始,默认支持Apple的HTTP Live流媒体.甚至维基百科都提到了这一点.
但是,当我尝试使用捆绑的API演示运行Apple提供的测试流时, MediaPlayerDemo_Video.java
我得到以下例外:
setDataSource('http://devimages.apple.com/iphone/samples/bipbop/gear1/
prog_index.m3u8')
connect to devimages.apple.com:80/iphone/samples/bipbop/gear1/
prog_index.m3u8 @0
INFO/NuCachedSource2(34): ERROR_END_OF_STREAM
error (1, -2147483648)
ERROR/MediaPlayerDemo(667): error: Prepare failed.: status=0x1
java.io.IOException: Prepare failed.: status=0x1
at android.media.MediaPlayer.prepare(Native Method)
at
com.video.stream.MediaPlayerDemo_Video.playVideo(MediaPlayerDemo_Video.java:
125)
at
com.video.stream.MediaPlayerDemo_Video.surfaceCreated(MediaPlayerDemo_Video.java:
181)
...
surfaceChanged called
Displayed com.video.stream/.MediaPlayerDemo_Video: +1s652ms (total
+7s427ms)
GC_EXPLICIT freed 2K, 55% free 2514K/5511K, external 716K/1038K,
paused 183ms
GC_EXPLICIT freed 17K, 52% free 2782K/5767K, external 716K/1038K,
paused 87ms
GC_EXPLICIT freed 68K, 50% free 2972K/5895K, external 2544K/3109K,
paused 104ms
request time …
Run Code Online (Sandbox Code Playgroud) 我正在使用带有ADT 10.0
插件的Eclipse Ganymede 并Android3.0 SDK
构建我的应用程序.
当我尝试在手机上部署应用程序时,我在控制台上写了以下内容:
[2011-05-06 10:35:38 - MyProject] Failed to install MyProject.apk on device
[2011-05-06 10:35:38 - MyProject] (null)
[2011-05-06 10:35:38 - MyProject] Launch canceled!
Run Code Online (Sandbox Code Playgroud)
以下内容写入adb logcat
:
INFO/zipro(2499): Could not find end-of-central-directory in Zip
DEBUG/asset(2499): failed to open Zip archive '/data/local/tmp/MyProject.apk'
WARN/PackageParser(2499): Unable to read AndroidManifest.xml of /data/local/tmp/MyProject.apk
WARN/PackageParser(2499): java.io.FileNotFoundException: AndroidManifest.xml
WARN/PackageParser(2499): at android.content.res.AssetManager.openXmlAssetNative(Native Method)
WARN/PackageParser(2499): at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:523)
WARN/PackageParser(2499): at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:491)
WARN/PackageParser(2499): at android.content.pm.PackageParser.parsePackageLite(PackageParser.java:597)
WARN/PackageParser(2499): at com.android.defcontainer.DefaultContainerService$1.getMinimalPackageInfo(DefaultContainerService.java:126)
WARN/PackageParser(2499): at com.android.internal.app.IMediaContainerService$Stub.onTransact(IMediaContainerService.java:100)
WARN/PackageParser(2499): at …
Run Code Online (Sandbox Code Playgroud) android ×10
java ×2
aapt ×1
diacritics ×1
file-upload ×1
fonts ×1
httpclient ×1
imageview ×1
skia ×1
stagefright ×1
unit-testing ×1
xml-parsing ×1