小编Mik*_*ter的帖子

在后台线程中启动runnable

据我所知,我已经实现了一个在新线程上创建的runnable.但是,该线程似乎并未在后台运行,并且在runnable中执行的操作正在使用大量操作阻止UI.

见下文:

custListLoadThread = new Thread(loadRunnable);
custListLoadThread.run();

private Runnable loadRunnable = new Runnable()
{
    @Override
    public void run()
    {
        android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);

        Gen.popup("TEST"); // Creates a toast pop-up.
        // This is to know if this runnable is running on UI thread or not!

        try
        {               
            customers = Db.BasicArrays.getCustomers(CustomApp.Session.businessCode, empId);

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    populate();
                    setCustListVisible(true);
                    loading = false;
                }
            });
        }
        catch (final Exception ex)
        {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Gen.popup(ex.getMessage());
                }
            });
        } …
Run Code Online (Sandbox Code Playgroud)

multithreading android runnable

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

使用JodaTime检查日期X是否在日期Y之后

我正在使用jodatime DateTime变量.我想检查DateTime'x'是否在DateTime'y'之后.isAfter函数只接受一个long参数,而不是a DateTime,我发现它很奇怪.什么是比较两个DateTimes 的最佳方式?

java jodatime

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

如何在android中的assets文件夹中编辑文本文件

我在Android的assets文件夹中使用了一个文本文件.我想动态更改该文本文件中的数据.我试图打开文件如下:

FileOutputStream fos=this.getAssets().openNonAssetFd("data.txt").createOutputStream();
Run Code Online (Sandbox Code Playgroud)

但它产生了错误:java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed.请帮我编辑这个文件.非常感谢你.

android

9
推荐指数
1
解决办法
9319
查看次数

在具有一些控件的窗体上绘制半透明叠加图像

在窗体上绘制半透明叠加图像,其中包含一些控件,使其所有子控件都可见,但不能单击它们.它应该像我们通过一些半透明的黑色镜子看到一些东西.

我尝试过使用透明控件.这是对该控件的Panel控件和绘图图像的子类,但是所有控件都是完全可见的.

c# overlay transparent

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

比较两个对象,其中任何一个都可以为null

我在我的一个类中有一个函数,它将自己与同一个类的另一个实例进行比较 - 并找出哪些变量不同.这是为了最大限度地减少主数据库的网络负载(仅上传需要上传的数据,而不是上传整个对象).

为此,我一直在尝试使用该object.equals()函数来比较两个对象.

我很快就发现object.equals()它没有处理null,在看完这个问题之后,我理解为什么.

所以我破坏的代码示例如下:

public class MyObject {

    String myString;
    String myString2;

    public String getChangedVars(MyObject comparisonObj) {
        ArrayList<String> changedVars = new ArrayList<String>();

        if (!this.myString.equals(comparisonObj.myString))
            changedVars.add("myString");
        if (!this.myString2.equals(comparisonObj.myString2))
            changedVars.add("myString2");

        return changedVars.toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 基于被比较的变量中的任何一个可能为空,比较两个变量同时避免一个变量的简单方法是NullPointerException什么?

编辑:简单地检查两个对象上的null首先不能正常工作,因为我仍然希望比较对象是否有引用.例如,如果一个项目是null,而另一个项目不是,我希望这个解析为true,因为变量已经改变.

java

9
推荐指数
1
解决办法
4127
查看次数

WPF图像缓存

我有一个WPF应用程序从视频文件中获取快照图像.用户可以定义从中获取图像的时间戳.然后将图像保存到磁盘上的临时位置,然后将其渲染为<image>元素.

然后,用户应该能够选择不同的时间戳,然后覆盖磁盘上的临时文件 - 然后应该在<image>元素中显示.

使用Image.Source = null;,我可以从元素中清除图像文件<image>,因此它会显示一个空白区域.但是,如果源图像文件随后被新图像(具有相同名称)覆盖并加载到<image>元素中,则它仍然显示旧图像.

我使用以下逻辑:

// Overwrite temporary file file here

// Clear out the reference to the temporary image
Image_Preview.Source = null;

// Load in new image (same source file name)
Image = new BitmapImage();
Image.BeginInit();
Image.CacheOption = BitmapCacheOption.OnLoad;
Image.UriSource = new Uri(file);
Image.EndInit();
Image_Preview.Source = Image;
Run Code Online (Sandbox Code Playgroud)

<image>即使原始文件已完全替换,元素中显示的图像也不会更改.这里是否存在我不知道的图像缓存问题?

wpf image

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

具有不同资源的两种风格从一种基本风味继承布局

我的Android应用程序分为四种不同的构建风格.这些风味剂的具有独特的部分javaxml文件,并在共享文件的一部分main.为了清楚起见,我们调用这些Cucumber,Tomato,OnionPepper.这些风味有独特的布局,drawables,字符串,颜色,java文件等.

我的要求是现在我需要将我的Pepper味道分成两种子味道; Red-PepperGreen-Pepper.这两种口味的布局应该是相同的 - 唯一不同的是两种口味必须使用不同的drawablestring资源.出于显而易见的原因,我不希望在红色和绿色两种形式中都有重复的布局文件.

如何实现这一目标gradle

android gradle android-studio build.gradle android-gradle-plugin

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

自定义语音操作

有关语音操作Google Developer视频声明可以实施自定义语音操作.给出的例子是:

Ok Google, Shazam this song
Run Code Online (Sandbox Code Playgroud)

显然,这不是系统语音操作之一(拍照,设置闹钟等).视频提供的链接指向" 自定义语音操作"页面,其中指出:

For example, developers have implemented commands like "scan my receipt on Walmart"
or "watch trailer for Inception on Flixster."
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有任何关于如何实现自定义语音操作的解释,并且该页面含糊地指出:

Note: We are not accepting requests for Custom Voice Actions.
Stay tuned to Voice Actions - Google Developers and +GoogleDevelopers for product updates.
Run Code Online (Sandbox Code Playgroud)

这是否意味着根本不可能进行自定义语音操作 - 或者可能需要Google特别批准?

我想实现一个自定义的语音操作,所以我可以说一个自定义的短语,例如Ok Google, Foo Bar我自己的活动会选择它.这可能吗?

编辑:必须在应用程序尚未运行时执行 - 只是为了澄清.

android voice google-voice-actions

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

删除按钮上的虚线

如何删除按钮上显示的虚线(通过选项卡或单击它们)?

这个问题适用于winforms- 任何帮助表示赞赏.

在此输入图像描述

编辑:我为重复的问题道歉.我确实在搜索答案,但我不知道这个问题是由于按钮的"焦点".结果我没有找到合适的答案.

c# winforms

7
推荐指数
1
解决办法
2444
查看次数

没有DateTime?.ToString(string)重载?

我知道DateTime以自定义格式显示的标准程序,如下所示:

MessageBox.Show(dateSent.ToString("dd/MM/yyyy hh:mm:ss"));

但是,当我将变量从a更改DateTime为a DateTime?以接受空值时,我将失去ToString(string)重载的定义.我需要使用,DateTime?因为我正在从一个可能具有空值的数据库中读取 - 如果数据库中的字段具有空值,那么我还需要为变量赋值空值.

所以我有两个问题:

1)出于好奇,有没有人知道是否有一个DateTime?不包含过载的原因ToString(string)

2)有人可以为我想要实现的目标建议一种替代方法吗?

c# datetime

7
推荐指数
2
解决办法
2713
查看次数