我正在尝试重现DownloadManager在我的应用程序内的通知栏中显示的相同进度,但我的进度永远不会发布.我正在尝试使用runOnUiThread()更新它,但由于某种原因它没有更新.
我的下载:
String urlDownload = "https://dl.dropbox.com/s/ex4clsfmiu142dy/test.zip?token_hash=AAGD-XcBL8C3flflkmxjbzdr7_2W_i6CZ_3rM5zQpUCYaw&dl=1";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(urlDownload));
request.setDescription("Testando");
request.setTitle("Download");
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "teste.zip");
final DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
final long downloadId = manager.enqueue(request);
final ProgressBar mProgressBar = (ProgressBar) findViewById(R.id.progressBar1);
new Thread(new Runnable() {
@Override
public void run() {
boolean downloading = true;
while (downloading) {
DownloadManager.Query q = new DownloadManager.Query();
q.setFilterById(downloadId);
Cursor cursor = manager.query(q);
cursor.moveToFirst();
int bytes_downloaded = cursor.getInt(cursor
.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
int bytes_total = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_SUCCESSFUL) {
downloading = false;
}
final …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Crashlytics SDK安装到我的Eclipse中,但是我收到以下错误:
"安装软件"遇到了问题.收集要安装的项目时出错
An error occurred while collecting items to be installed
session context was:(profile=profile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,com.android.ide.eclipse.adt,22.0.1.v201305230001--685705
No repository found containing: osgi.bundle,com.android.ide.eclipse.adt.package,22.0.1.v201305230001--685705
No repository found containing: osgi.bundle,com.android.ide.eclipse.base,22.0.1.v201305230001--685705
No repository found containing: osgi.bundle,com.android.ide.eclipse.ddms,22.0.1.v201305230001--685705
No repository found containing: osgi.bundle,overlay.com.android.ide.eclipse.adt.overlay,22.0.1.v201305230001--685705
No repository found containing: org.eclipse.update.feature,com.android.ide.eclipse.adt,22.0.1.v201305230001--685705
No repository found containing: org.eclipse.update.feature,com.android.ide.eclipse.ddms,22.0.1.v201305230001--685705
Run Code Online (Sandbox Code Playgroud)
这是Crashlytics存储库中的问题吗?有人可以帮我解决这个问题吗?
我在关闭应用程序时遇到问题,因为关闭应用程序后某些线程仍在运行.有人可以帮我一些方法来阻止所有线程在后台执行之前杀死主线程???
[EDITED]
关于javafx的问题,我注意到许多新开发人员正面临着管理Threads的问题.我想分享一下我为简化在javafx上管理线程的生活所做的工作.我已经基于Android的AsyncTask创建了一个AsyncTask类,它基本上以简单但有效的方式执行Android的相同操作.您可以在Github项目中找到有关它的更多信息
我在关闭我的javaFX应用程序时遇到问题,当我点击我的舞台上的关闭按钮时,我的应用程序消失但是如果我在我的任务管理器中查找它,我的应用程序仍然没有关闭.我试图使用下面的代码强制它关闭主线程和所有子线程,但问题仍然存在.
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent t) {
Platform.exit();
}
});
Run Code Online (Sandbox Code Playgroud) 当我点击tabPane的一个标签时,我正在尝试做某些事情,我尝试过使用Action Event但它不起作用:
public void tabPressClicked (ActionEvent event){
comboBoxPresYear.setVisible(true);
lblPresYear.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
[EDITED]
正确的方法:
tabPresentation.setOnSelectionChanged(new EventHandler<Event>() {
@Override
public void handle(Event t) {
if (tabPresentation.isSelected()) {
comboBoxPresYear.setVisible(true);
lblPresYear.setVisible(true);
}
}
});
Run Code Online (Sandbox Code Playgroud) 我是Windows 8和C#开发的新手,但我对Java Programming有一定的经验.
所以,当我尝试在java中创建一些Json解析器(例如)时,我不能在不使用try-catch块的情况下执行此操作,这样我就可以处理异常,但是当我尝试在c#中执行相同操作时(Windows 8)我不使用try-catch块也可以,如下所示:
if (json != null)
{
JObject jObject = JObject.Parse(json);
JArray jArrayUsers = (JArray)jObject["users"];
foreach (JObject obj in jArrayUsers)
{
ListViewMainViewModel user = new ListViewMainViewModel(
(String)obj["email"],
(String)obj["token"],
(String)obj["institution"],
(String)obj["uuidInstitution"]);
usersList.Add(user);
}
return usersList;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道正确的方法是捕获JsonReaderException,但Visual Studio从未警告过我.我想知道是否有一种简单的方法可以知道某个方法是否抛出异常,就像在使用eclipse的java上一样(它是强制实现try-catch块或代码不会编译)
今天我不得不修复由此代码引起的性能问题:注意在模板内部调用的updateStats
<script type="text/ng-template" id="entityGrouper">
<section>
<div>
<ul ng-click="hideEntityBox = !hideEntityBox">
<li>
{{ entityNode.name }}
</li>
<li ng-repeat="breadcrumbItem in entityNode.breadcrumb">
{{ breadcrumbItem }}
</li>
</ul>
{{ updateStats(entityNode) }}
<span ng-include="'/mypath/views/resume.html'"></span>
</div>
<div>
<div ng-repeat="entityNode in entityNode.group" ng-include="'entityGrouper'"></div>
<div ng-repeat="entity in entityNode.group" ng-include="'entityBox'"></div>
</section>
</script>
Run Code Online (Sandbox Code Playgroud)
模板使用:
<div ng-repeat="entityNode in entityNode.group" ng-include="'entityGrouper'"></div>
Run Code Online (Sandbox Code Playgroud)
在调试这段代码后,我发现这个函数被调用的时间比数组大小多很多(我的数组有4个对象,函数被调用超过100次),甚至鼠标悬停都调用了这个函数.我通过在模板中放置一个ng-init来修复它,现在它正常工作,但我没有弄清楚为什么这个函数被调用了很多次.有没有关于双向数据绑定的东西?
我正试图在我的parcelable中传递一个List:
public class MetaDados implements Parcelable {
private List<Long> sizeImages;
public MetaDados(List<Long> sizeImages){
this.sizeImages = sizeImages;
}
public List<Long> getSizeImages() {
return sizeImages;
}
public void setSizeImages(List<Long> sizeImages) {
this.sizeImages = sizeImages;
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeList(sizeImages);
}
public static final Parcelable.Creator<MetaDados> CREATOR = new Parcelable.Creator<MetaDados>() {
@Override
public MetaDados createFromParcel(Parcel in) {
return new MetaDados(in);
}
@Override
public MetaDados[] newArray(int size) …Run Code Online (Sandbox Code Playgroud) 尝试使用以下命令从命令行编译我的应用程序时遇到问题:
./Project/gradlew -b ./Project/sampleapp/build.gradle assembleProd -x lint --stacktrace
但命令抛出以下错误:
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at Version.fakeStackEntry(Version_2.2.71.java:0)
at com.android.tools.r8.utils.a0.a(SourceFile:89)
at com.android.tools.r8.R8.a(R8.java:34)
at com.android.tools.r8.R8.run(R8.java:3)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:259)
at com.android.build.gradle.internal.tasks.R8Task$Companion.shrink(R8Task.kt:480)
at com.android.build.gradle.internal.tasks.R8Task.doTaskAction(R8Task.kt:341)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:63)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:90)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
... 94 more
Caused by: java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)
我已经尝试了在 stackoverflow、此处和此处找到的许多解决方案,但没有一个有效。
org.gradle.jvmargs=-Xms4096m -Xmx8192m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError
Run Code Online (Sandbox Code Playgroud)
DEFAULT_JVM_OPTS="-Xms4096m -Xmx8192m"
JAVA_OPTS="-Xms4096m -Xmx8192m"
GRADLE_OPTS="-Xms4096m -Xmx8192m"
Run Code Online (Sandbox Code Playgroud)
export …Run Code Online (Sandbox Code Playgroud) 我试图在Java纯代码中重现Android的AsyncTask所遵循的逻辑.
为此,我创建了抽象类AsyncTask,实现了我的IAsynTask,它基本上调用onPreExecute,doInBackground和onPostExecute,同时我创建了魔法发生的方法execute.
因此,在我的登录过程中使用它,例如,我创建了扩展AsyncTask的LoginTask类,但与我想象的onPreExecute的实现不同,doInBackground和onPostExecute看起来并不是强制性的.我究竟做错了什么?
Inteface:
public interface IAsyncTask {
public void onPreExecute();
public void doInBackground();
public void onPostExecute();
}
Run Code Online (Sandbox Code Playgroud)
类:
public abstract class AsyncTask implements IAsyncTask{
public void onPreExecute() {
}
public void doInBackground(){
}
public void onPostExecute() {
}
public void execute() {
onPreExecute();
new Thread(new Runnable() {
@Override
public void run() {
doInBackground();
Platform.runLater(new Runnable() {
@Override
public void run() {
onPostExecute();
}
});
}
}).start();
}
}
Run Code Online (Sandbox Code Playgroud)
[EDITED]
关于javafx的问题,我注意到许多新开发人员正面临着管理Threads的问题.我想分享一下我为简化在javafx上管理线程的生活所做的工作.我已经基于Android的AsyncTask创建了一个AsyncTask类,它基本上以简单但有效的方式执行Android的相同操作.您可以在Github项目中找到有关它的更多信息
android ×5
java ×3
javafx ×3
javafx-2 ×2
angularjs ×1
c# ×1
crashlytics ×1
eclipse ×1
heap-memory ×1
javascript ×1
jvm ×1
kotlin ×1
ng-template ×1
progress-bar ×1
windows-8 ×1