小编Igo*_*daš的帖子

使用FragmentStatePagerAdapter WITHOUT支持库

我想知道是否可以在没有支持库的情况下使用FragmentStatePagerAdapter类或其等价物?

我知道如何使用本机片段代替支持库中的那些片段,而许多其他类具有类似的等价物,但我找不到应该使用什么而不是这个类.

我基本上想扩展它在我的适配器中使用它像这样

public class ImageAdapter extends FragmentStatePagerAdapter {...
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager android-support-library

34
推荐指数
1
解决办法
7937
查看次数

将-P参数从android studio传递给gradle

android studio里面有一个功能可以做这样的事情.基本上我的gradle脚本读取名为version的参数,根据该参数设置某个库的依赖版本.因此,当我执行gradlew -Pversion ='1.2.3'时,我在gradle中得到了这个字符串.但这只有在我从控制台调用gradle时才有效.

有没有办法在Android Studio中使用项目配置(按下小三角形)时将参数传递给gradle?

注意:我确实在默认配置下找到了Gradle VM选项和脚本参数,但添加-Pversion ='1.2.3'似乎没有效果.

android gradle android-studio

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

指示Android Gradle脚本删除未对齐的apks并清除工件文件

几天前我开始使用Gradle构建系统并让脚本按照我的意愿工作,这里是:

buildscript {
    repositories {
        mavenCentral()
    }
}

dependencies {
    classpath 'com.android.tools.build:gradle:0.6.+'
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 17
    buildToolsVersion '18.0.1'


    productFlavors {
        flavor1 {
            packageName "flavor1"
        }
        flavor2 {
            packageName "flavor2"
        }
        flavor3 {
            packageName "flavor3"
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        signingConfigs {
            release {
                storeFile file("test.keystore")
                storePassword "*****"
                keyAlias "****"
                keyPassword "*****"
            }
        }
        buildTypes {
            release { …
Run Code Online (Sandbox Code Playgroud)

android build gradle

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

何时使用以及何时不在Android中使用服务

我已经为Android开发了不到两年的时间,我仍然对这个看似简单的问题感到困惑.应该何时实施服务?根据我的经验,有一些罕见的情况,但我对此提出质疑,因为在每部手机上都运行了很多,我怀疑它只是一个糟糕的应用程序设计.

这基本上是我的问题的核心,但以下是我对该主题的一些经验和想法,可以更详细地解释我的问题.

在我开发的所有应用程序中,只有一个真正需要服务.这是一个背景录音机,因为我希望按钮能够控制它(就像音乐播放器那样),我将它作为Foreground服务用于通知.

除此之外,我从未真正看到过持续运行服务的要求,因为:

A)Intent侦听器(Manifest注册的BroadcastReceivers)是一个非常有用的功能,如您所知,使用它们通常足以用于许多用例(例如显示通知).

B)如果计划执行是必须的,则可以订阅警报事件.

C)我知道Android中的服务与Windows中的服务完全不同,因为在Android服务中只是用于组织代码的"包",并且系统管理对象的生命周期.服务使用主线程,但习惯上在其中生成新线程.

D)在开发文档中建议使用服务进行网络通信和后台计算,但我不明白为什么你不应该只使用AsyncTasks.我非常喜欢这些并广泛使用它们,从下载数据到在时间紧迫的条件下进行FFT计算.

E)我得到了Foreground服务的有用性,但为什么人们使用后台服务这么多(不包括系统应用程序).

这些是我对服务的看法,我希望有经验的人能够解释这些PROS和CONS(以及我可能错过的其他人).

android android-service android-lifecycle

13
推荐指数
1
解决办法
5740
查看次数

是否可以在一个<intent-filter>中为Activity注册两个动作

我想注册我的启动器活动,因此可以通过单击图标和打开自定义方案的链接来启动它.我设法让它工作,但质疑这是正确的方法.这是我的清单的相关部分:

  <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="my.sheme" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

这确实有效,但我想知道我是否应该在同一个意图过滤器下注册这两个动作.我尝试将标签从第二个过滤器移动到第一个过滤器,但是我的活动在安装时没有显示图标.是否有可能这样做,我只是做了一些小的语法错误(或打破了一些未记录的声明规则的顺序)或者我的想法是完全错误的,并且有更深层次的原因为什么这不起作用?

注意:我确实设置了android:exported ="true"但android.intent.action.MAIN即使没有它也能正常工作,因为如果你使用action.MAIN它会被导出

android intentfilter android-manifest

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

如何从Gradle控制Android模拟器

我正在寻找Gradle插件来控制Android模拟器.我需要的功能是:

启动/停止

安装/卸载

运行连接测试

并且最好是模拟器图像的自动创建和设置(包括下载,如果缺少).基本上我想能够在build.gradle里面说

emulator{
   image=android-18
   memory=1024
   resolution=x y
   window=yes/no
}
Run Code Online (Sandbox Code Playgroud)

并让Gradle下载原始图像并按指定设置.

是否有一些插件可以做这样的事情?

注意:我知道有这样的CI插件,如Jenkins一个https://wiki.jenkins-ci.org/display/JENKINS/Android+Emulator+Plugin, 但这不是我想要的.我正在寻找一个纯Gradle解决方案,它将自动管理模拟器状态,以便在开发人员机器上测试和运行应用程序.

android emulation gradle

10
推荐指数
1
解决办法
1460
查看次数

Android单元测试失败的Debug构建类型

我的单元测试失败,android.util.Log中的方法d没有被模拟但仅在我运行testDebug时.如果运行testRelease一切正常,他们正确通过.有谁知道为什么会这样?从控制台和Android工作室运行gradle时也会发生同样的事情.

android unit-testing gradle

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

为什么.size()不是集合上的getSize()

我已经使用Java很长一段时间了,我仍然对这个API的命名感到困惑.为什么会那样?

例如,当您有一个实例时,ArrayList它具有一个属性,即列表中添加了多少对象.要获得这个属性,你打电话,.size()而不是getSize()你真正想要做的更多.您正在尝试读取此列表的属性值,而不是对其执行某些操作.我猜在内部"调整大小"这个列表可能要比读取单个变量要复杂得多,但这是植入细节,对象的用户不应该关心它.

java api collections

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

如何在 Spy 对象上应答后执行 Mockito 中的原始方法

我想知道描述中的事情是否可能以及如何做到。

我知道你可以调用原始方法,然后像这样回答:

when(presenter, "myMethod").doAnswer(<CUSTOMANSWER>)
Run Code Online (Sandbox Code Playgroud)

但我想以不同的方式订购它们,首先执行 CUSTOMANSWER,然后调用原始方法。

mockito powermockito

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