小编Vic*_*rte的帖子

使用DownloadManager显示在活动中下载进度

我正在尝试重现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)

android progress-bar

87
推荐指数
3
解决办法
4万
查看次数

在针对eclipse的Crashlytics安装中找不到存储库

我正在尝试将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存储库中的问题吗?有人可以帮我解决这个问题吗?

eclipse android crashlytics

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

在关闭我的JavaFX程序之前停止线程

我在关闭应用程序时遇到问题,因为关闭应用程序后某些线程仍在运行.有人可以帮我一些方法来阻止所有线程在后台执行之前杀死主线程???

[EDITED]

关于javafx的问题,我注意到许多新开发人员正面临着管理Threads的问题.我想分享一下我为简化在javafx上管理线程的生活所做的工作.我已经基于Android的AsyncTask创建了一个AsyncTask类,它基本上以简单但有效的方式执行Android的相同操作.您可以在Github项目中找到有关它的更多信息

java javafx

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

JavaFX应用程序在关闭后仍然运行

我在关闭我的javaFX应用程序时遇到问题,当我点击我的舞台上的关闭按钮时,我的应用程序消失但是如果我在我的任务管理器中查找它,我的应用程序仍然没有关闭.我试图使用下面的代码强制它关闭主线程和所有子线程,但问题仍然存在.

primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {

            @Override
            public void handle(WindowEvent t) {
                Platform.exit();
            }

        });
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-2

18
推荐指数
5
解决办法
3万
查看次数

使用Javafx选择一个特定选项卡时,如何执行某些操作

当我点击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)

javafx javafx-2

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

如何知道某些方法是否可以抛出异常

我是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块或代码不会编译)

c# windows-8 windows-runtime

13
推荐指数
3
解决办法
8518
查看次数

模板内的函数被多次调用(Angular JS)

今天我不得不修复由此代码引起的性能问题:注意在模板内部调用的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来修复它,现在它正常工作,但我没有弄清楚为什么这个函数被调用了很多次.有没有关于双向数据绑定的东西?

javascript angularjs ng-template

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

如何实现List <Long>的parcelable

我正试图在我的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)

android

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

Minify WithR8 抛出 java.lang.OutOfMemoryError:Java 堆空间

尝试使用以下命令从命令行编译我的应用程序时遇到问题:

./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、此处此处找到的许多解决方案,但没有一个有效。

  1. 更改了 gradle.properties:
org.gradle.jvmargs=-Xms4096m -Xmx8192m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError
Run Code Online (Sandbox Code Playgroud)
  1. 更改了 gradlew 文件以添加 JAVA_OPTS 和 GRADLE_OPTS:
DEFAULT_JVM_OPTS="-Xms4096m -Xmx8192m"
JAVA_OPTS="-Xms4096m -Xmx8192m"
GRADLE_OPTS="-Xms4096m -Xmx8192m"
Run Code Online (Sandbox Code Playgroud)
  1. 更改了 zshrc:
export …
Run Code Online (Sandbox Code Playgroud)

android jvm heap-memory kotlin

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

如何在Java纯代码中从Android重现AsyncTask

我试图在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项目中找到有关它的更多信息

java android

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