小编Gui*_*ino的帖子

读写超时行为

OkHttp中读写超时的行为是什么?

是整个请求超过超时持续时间时触发的超时异常,还是套接字在此期间未接收(读取)或发送(写入)任何数据包的情况.

我认为这是第二种行为,但有人可以澄清这一点吗?

提前致谢.

okhttp

18
推荐指数
1
解决办法
4821
查看次数

Android onCreate onResume

我有个问题.当我开始了第一次我的Android应用程序,在主要活动均onCreateonResume被调用.但我想只被称为onCreate.

我能做什么?

android onresume oncreate

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

DialogFragment - 在onSaveInstanceState之后无法执行此操作

我正在开发一个启动器应用程序,当用户验证自身时会显示对话框碎片.大部分时间这都运行良好,但有时我有这个错误日志:

02-07 18:55:56.619: E/AndroidRuntime(1300): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1280)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1291)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.app.BackStackRecord.commitInternal(BackStackRecord.java:548)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.app.BackStackRecord.commit(BackStackRecord.java:532)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.app.DialogFragment.dismissInternal(DialogFragment.java:292)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.app.DialogFragment.dismiss(DialogFragment.java:258)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at com.blablabla.android.app.fragments.login.LoginResultFragment$CloseDialogRunnable.run(LoginResultFragment.java:59)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.os.Handler.handleCallback(Handler.java:615)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.os.Looper.loop(Looper.java:137)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at android.app.ActivityThread.main(ActivityThread.java:4745)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at java.lang.reflect.Method.invokeNative(Native Method)
02-07 18:55:56.619: E/AndroidRuntime(1300):     at java.lang.reflect.Method.invoke(Method.java:511)
02-07 18:55:56.619: …
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception android-dialogfragment

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

在OSX Lion升级后,"Makefile"所需的perl".../config.h"无效

解决了.见底部.

刚刚升级到OSX Lion并试图让我的Perl安装再次运行:

sudo /usr/bin/perl -MCPAN -e 'install "MODULENAME"'

MODULENAME我试过的任何价值(例如JSON)产生:

...
Checking if your kit is complete...
Looks good
Writing Makefile for JSON
make: *** No rule to make target `/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/config.h', needed by `Makefile'.  Stop.
  MAKAMAKA/JSON-2.53.tar.gz
  /Developer/usr/bin/make -- NOT OK
Run Code Online (Sandbox Code Playgroud)

我找不到任何类似的东西config.h,目录虽然存在...

甚至没有这个工作:

/usr/bin/cpan CPAN
Run Code Online (Sandbox Code Playgroud)

已解决:从AppStore下载并安装最新版本的XCode.请注意,只是从AppStore下载XCode不会安装它(为什么,Apple,为什么?)但是只将安装程序转储到/ Applications中.运行安装程序,这将解决此问题.

macos perl cpan osx-lion

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

理解主题和样式属性之间的区别

我正在处理Android L颜色定义以定义ListView的行.我有一个主题:

    <item name="colorAccent">@color/color_blue_dark</item>
Run Code Online (Sandbox Code Playgroud)

在我的行中我定义了另一个:

<style name="DefaultRow">
    <item name="colorAccent">@color/color_sand</item>
    <item name="android:background">?android:attr/activatedBackgroundIndicator</item>
</style>
Run Code Online (Sandbox Code Playgroud)

假设colorAccent值将被覆盖.但如果我在我的行中,那就不行了:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
          ...
          style="@style/DefaultRow"/>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但如果我这样做,它会起作用:

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
              ...
              android:theme="@style/DefaultRow"/>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有什么不同?是colorAccent在应用主题时定义的,而不是在以后重写?如何解决这个问题具有逆向兼容性?

android android-theme android-styles

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

在lambda中进行转换,在IntelliJ中标记为冗余

我正在编写一个小框架,需要instanceof用来知道传递哪种类型的回调.我已经知道了instanceof它的缺点,但它在第三方库中使用,我不能改变那部分.

在编写lambdas并进行转换时,IntelliJ警告我,转换是多余的,但实际上它是需要的(它会影响结果),并且如果我明确声明lambda它就可以工作.你知道这是不是一个bug,也许我错过了什么或有更好的方法来做到这一点?

例:

public class Main {

    public interface Iface {
        String run();
    }

    public interface IfaceA extends Iface {
    }

    public interface IfaceB extends Iface {
    }

    public static void lambdaTest(Iface iface) {
        System.out.print(iface.run()+": ");
        if (iface instanceof IfaceA) {
            System.out.println("IfaceA");
        } else if (iface instanceof IfaceB) {
            System.out.println("IfaceB");

        } else {
            System.out.println("Iface");

        }
    }

    public static void main(String[] args) {
        lambdaTest((IfaceA)() -> "Casted to A");
        lambdaTest((IfaceB)() -> "Casted to B");
        lambdaTest(() -> "Not Casted"); …
Run Code Online (Sandbox Code Playgroud)

lambda intellij-idea java-8

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

以错误的顺序安装应用时Android会出现权限问题

我正在开发一些应用程序,其中一个是作为"服务器"(让我们称之为Core),其余的作为客户端.Core应用程序是在后台运行的服务,客户端应用程序使用Core的提供程序来获取数据.

为此,我已将权限添加到我的服务应用中:

<permission android:name="com.mycompany.android.core.DATA_READ" />
<permission android:name="com.mycompany.android.core.DATA_WRITE" />
Run Code Online (Sandbox Code Playgroud)

我的应用程序请求权限:

    <!-- Permission to use Core's ContentProvider -->
<uses-permission android:name="com.mycompany.android.core.DATA_READ"/>
<uses-permission android:name="com.mycompany.android.core.DATA_WRITE"/>
Run Code Online (Sandbox Code Playgroud)

如果我在设备中安装Core,然后安装任何应用程序,它运行良好,识别权限然后正常执行.

但是应用程序还可以检查设备中是否安装了此Core应用程序,然后从Google Play下载,问题是,当我在应用程序之后安装Core时,我的权限无法识别:

   W/ActivityManager(  751): Permission Denial: opening provider com.mycompany.android.core.db.DataProvider from ProcessRecord{23ee9d17 19907:com.mycompany.android.vanilla.ta/u0a120} (pid=19907, uid=10120) requires com.mycompany.android.core.DATA_READ or com.mycompany.android.core.DATA_WRITE
    E/AndroidRuntime(19907): FATAL EXCEPTION: AsyncTask #2
    E/AndroidRuntime(19907): Process: com.mycompany.android.vanilla.ta, PID: 19907
    E/AndroidRuntime(19907): java.lang.RuntimeException: An error occured while executing doInBackground()
    E/AndroidRuntime(19907):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
    E/AndroidRuntime(19907):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
    E/AndroidRuntime(19907):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
    E/AndroidRuntime(19907):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    E/AndroidRuntime(19907):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    E/AndroidRuntime(19907):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    E/AndroidRuntime(19907):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) …
Run Code Online (Sandbox Code Playgroud)

permissions android

4
推荐指数
1
解决办法
453
查看次数

PMD使用gradle排除模式

我正在尝试在Gradle中为PMD任务创建一些排除模式.

我的任务是以下一个方式生成的:

/* Allows generation of pmd config  */
allprojects {
    apply plugin: 'pmd'
}
gradle.projectsEvaluated {

    subprojects.each() { project ->


        if (project.hasProperty('android')) {

            project.task("runPmd", type: Pmd) {

                description "Run pmd"
                group 'verification'

                source = fileTree("${project.projectDir}/src/main/java")
                ruleSetFiles = files("${project.rootDir}/build-tools/pmd.xml")
                ignoreFailures = true

                reports {
                    xml.enabled = true
                    html.enabled = true
                }
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

而ruleSet是:

<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="MyCompany ruleset"
    xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">

    <description>
        MyCompany ruleset for Android PMD
    </description>

  <exclude-pattern>.*/org/jivesoftware/.*</exclude-pattern>
  <exclude-pattern>.*/net/java/.*</exclude-pattern>

...rules...
</ruleset>
Run Code Online (Sandbox Code Playgroud)

但在我的报告中,我得到了: 报告

难道我做错了什么?检查这个 …

pmd gradle

3
推荐指数
1
解决办法
3197
查看次数