小编Flu*_*ery的帖子

Android Espresso:等待活动完成/开始

是否有使用Espresso等待特定活动完成或启动的规范解决方案?

我有一个SplashActivity出现几秒钟,然后是MainActivity.我希望Espresso与MainActivity交互,而不是SplashActivity,但我似乎无法找到有关等待这种情况的任何信息.

我能找到的最接近的是提到空闲资源,但我不清楚如何在这里使用它来等待活动.

testing android android-espresso

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

Android Espresso:按顺序运行多个测试

我正在尝试使用Espresso for Android进行一系列测试.看来,在运行之间,活动不会被关闭.无论一次测试后的应用程序状态如何,它都会进行下一次测试.

我需要从一个全新的应用程序开始运行我的每个测试.在Robotium中,这是使用tearDown()方法中的solo.finishOpenedActivites()来处理的.
http://robotium.googlecode.com/svn/doc/com/robotium/solo/Solo.html#finishOpenedActivities()

如何用Espresso完成这项工作?

testing android android-testing android-espresso

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

Android BLE:onCharacteristicRead()似乎被线程阻止

我正在针对BLE设备实现一系列特征性读取.因为readCharacteristic()异步执行,并且因为我们必须等到它在发出另一个"读"调用之前完成,所以我使用了一个锁wait(),然后在'onCharacteristicRead()notify()的锁中再次进行操作.

当我wait()打电话后readCharacteristic(),我从来没有打过电话onCharacteristicRead().如果我不这样做wait(),那么我会接到电话onCharacteristicRead()并报告正确的值.

以下是阻止回调的相关代码onCharacteristicRead():

private void doRead() {
    //....internal accounting stuff up here....
    characteristic = mGatt.getService(mCurrServiceUUID).getCharacteristic(mCurrCharacteristicUUID);
    isReading = mGatt.readCharacteristic(characteristic);

    showToast("Is reading in progress? " + isReading);

    showToast("On thread: " + Thread.currentThread().getName());

    // Wait for read to complete before continuing.
    while (isReading) {
        synchronized (readLock) {
            try {
                readLock.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public void onCharacteristicRead(BluetoothGatt …
Run Code Online (Sandbox Code Playgroud)

java multithreading android bluetooth-lowenergy android-bluetooth

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

Android Studio Javadoc:找不到符号

我正在尝试准备并将我的Android库上传到Bintray,并且该过程的一部分运行以下javadoc任务:

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
Run Code Online (Sandbox Code Playgroud)

此任务是更大的gradle脚本的一部分:https://raw.githubusercontent.com/attwellBrian/JCenter/master/bintrayv1.gradle

javadoc任务运行时,会出现下列问题:

  1. 项目中的每个@NonNull和@Nullable注释报告错误"错误:找不到符号"
  2. 我为Android类编写的每个Javadoc引用,如{@link Toolbar},都报告错误"error:reference not found"

生成Javadoc时如何更正这些引用问题?

编辑 看起来并非所有Android类链接都会产生问题,它可能只是来自Android支持库的类(也就是注释的来源).是否需要特殊的东西才能链接到gradle依赖项中的源文件?

android javadoc gradle android-studio

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

AndroidAnnotations找不到符号类

我在Android Studio gradle项目中使用AndroidAnnotations.我目前在编译期间从AA获得错误输出,其中说:

cannot find symbol class MyActivity_
Run Code Online (Sandbox Code Playgroud)

错误输出不会阻止构建应用程序 - 它不是真正的编译错误,因为类在那里,它似乎只是编译过程中一个不幸的计时问题.

我能做些什么来避免AA出现这些假阳性错误?当我每次编译时都显示"假"错误时,很容易错过真正的错误.

android android-annotations android-studio android-gradle-plugin

8
推荐指数
2
解决办法
4444
查看次数

Flutter:如何在运行时更改主题亮度?

我有MaterialApp一个ThemeData初步设定到Brightness.light。我想Brightness.dark在运行时将亮度切换为,但是当我进行更改时,只有状态栏会发生变化 - Flutter 小部件实际上没有改变它们的亮度。

如何实现这种行为?

为了ThemeData在运行时更改,我创建了以下内容StatefulWidgetMaterialApp在主题更改时包装并重建它:

final ThemeData appTheme = ThemeData(
  brightness: Brightness.light,
);

class ThemeChanger extends StatefulWidget {
  static ThemeChangerState of (BuildContext context) {
    return context.ancestorStateOfType(TypeMatcher<ThemeChangerState>());
  }

  ThemeChanger({
    this.childBuilder,
  });

  final Widget Function(BuildContext, ThemeData) childBuilder;

  @override
  ThemeChangerState createState() => ThemeChangerState();
}

class ThemeChangerState extends State<ThemeChanger> {
  Brightness _brightness = Brightness.light;

  set brightness(Brightness brightness) {
    setState(() {
      _brightness = brightness;
    });
  }

  @override
  Widget build(BuildContext context) …
Run Code Online (Sandbox Code Playgroud)

material-design flutter

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

VSCode Dart 导入快捷方式

VSCode 和/或插件是否提供键盘快捷键来自动在 Dart 文件中添加导入?在 IntelliJ 和 Android Studio 中,使用 Opt+Enter 可以轻松实现此效果。

dart angular-dart visual-studio-code flutter

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

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

Flutter:如何处理需要身份验证的屏幕?

我正在构建一个Flutter应用程序,其中的某些屏幕可以显示给匿名用户,而其他屏幕则需要用户登录。

对于经过身份验证的屏幕,如果用户未登录,则它们应自动导航至(按下)登录屏幕。用户会话可以随时终止,并且如果用户正在查看这些经过身份验证的屏幕之一,则应显示登录屏幕。那个时候马上。

在Flutter中,如何实现这种认证屏幕的概念,当用户未经认证时,该屏幕会自动导航到登录屏幕或从登录屏幕导航到登录屏幕?

navigation android login ios flutter

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

Flutter:如何在运行时更改MaterialApp主题

我有一个MaterialAppWidget,theme可以为应用程序中的所有小部件设置.我想在运行时从没有任何直接引用其父级的子窗口小部件更改MaterialApps themeMaterialApp.

看来这应该是可能的,因为它ThemeData是由一个提供的InheritedWidget,但我无法弄清楚如何改变theme批发.有谁知道如何做到这一点?

这是MaterialApp拥有应用程序其余部分的:

new MaterialApp(
    title: 'App Name',
    theme: initialTheme,
    routes: <String, WidgetBuilder>{
      '/' : ...,
    },
),
Run Code Online (Sandbox Code Playgroud)

flutter

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

如何防止结束消息关闭 Nodejs 流?

在 Node 服务器中,我有一系列管道连接在一起的流。比如说:

streamA.pipe(streamB).pipe(streamC)
Run Code Online (Sandbox Code Playgroud)

最终 streamA 完成,此时我想将下游切换到另一个源:

streamD.pipe(streamB).pipe(streamC)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这样做时,我收到以下错误:

Error: write after end
Run Code Online (Sandbox Code Playgroud)

如何防止streamA关闭我的下游?或者我怎样才能打开我的下游备份以将它们切换到 streamD?

此外,我的用例要求我等到 streamA 结束。我不能过早地切换流。

node.js node-streams

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