小编ido*_*ize的帖子

Android - 活动构造函数vs onCreate

我知道Android Activities有特定的生命周期,onCreate应该被覆盖并用于初始化,但是构造函数究竟发生了什么?是否有任何情况可以/应该覆盖Activity构造函数,或者你是否应该触摸它?

我假设永远不应该使用构造函数,因为引用不会被Activities完全清理(从而妨碍垃圾收集器),那onDestroy就是为此目的.它是否正确?

java android garbage-collection oncreate android-activity

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

在原始返回类型函数上返回"null"?

我有一个函数,它返回int给定键的值(来自a HashMap<String, Integer>).如果密钥不存在,我想返回调用者可以检查的内容.似乎,最常见的是,这将是" 如果键不存在则返回-1 "的事情.然而,我无法保留-1,在我的情况是目的,因为负数是哪个键是可行的值存在.

我能够提出的唯一其他选择如下:

  1. 将返回类型更改为Integer包装类并检查null
  2. 返回一些不太可能的东西,例如 Integer.MIN_VALUE
  3. 创建一个boolean keyExists(String key)应该始终首先调用的附加功能
  4. 切换到float和使用NaN,而不是

我是用Java编写的,但欢迎来自相似语言背景的人发帖.谢谢!

java

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

Android蓝牙 - 无法连接

我正在开发一个使用蓝牙连接到设备并发送/接收数据的应用程序.我正在使用Nexus One手机进行所有测试.

我从来没有能够建立从手机到任何设备的SPP(串行端口)连接.不过,我已经能够从一个设备(我的笔记本电脑)连接到使用Mac相当于腻子我的手机(唯一的例外是"蓝牙文件传输"从Marketplace应用似乎工作,但我不认为使用RFCOM/SPP ......).

我一直在LogCat日志中看到这条消息:

ERROR/BluetoothService.cpp(78): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session)
Run Code Online (Sandbox Code Playgroud)

以及这些:

java.io.IOException: Operation Canceled
java.io.IOException: Software caused connection abort
Run Code Online (Sandbox Code Playgroud)

我尝试使用UUID"00001101-0000-1000-8000-00805F9B34FB",我也试过使用:

Method m = device.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
sock = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
Run Code Online (Sandbox Code Playgroud)

方法而不是device.createRfcommSocketToServiceRecord(UUID);- 没有运气.

我正在使用BluetoothChat示例和该代码的变体来完成我的所有测试......

解决方案或建议会很棒...或者甚至是我可以在手机上运行的一些测试代码的更好/更简单的例子,或者是我可以在我的计算机上运行以帮助调试的python脚本?

谢谢!我希望这不是Android操作系统的错误,但如果是,我希望找到一个解决方法.


编辑:我还应该注意,大多数设备在蓝牙设置中显示为"已配对但未连接".


编辑2:解决方案似乎只是禁用任何蓝牙监听.有关更多信息,请参阅我的回答帖

java uuid android serial-port bluetooth

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

通过多线程的AJAX实时交换数据

我正在使用JSF 2.0开发一个应用程序,我希望有一个多行文本框,显示实时从文件中读取(逐行)的输出数据.

因此,目标是让一个页面上有一个按钮,触发后端开始从文件中读取,然后在文本框中读取结果时显示结果.


我曾考虑过以下方式做到这一点:

让本地页面跟踪它到目前为止在文本框中检索/显示的行.

本地页面将定期使用AJAX轮询后端并请求已读取的任何新数据(告诉它到目前为止页面具有哪些行,并且从那时起仅检索新行).

这将继续,直到完整检索整个文件.


问题是从文件读取的bean方法正在运行阻塞的while循环.所以从数据结构中读取它同时写入将需要使用额外的线程,对吗?我听说在Web应用程序中生成新的Threads是一个潜在的危险行为,应该使用线程池等.

任何人都可以对此有所了解吗?


更新:我尝试了几件不同的事情,没有运气.但我确实设法通过生成一个单独Thread的运行我的阻塞循环来使它工作,而主要线程可以用来在处理AJAX请求时从它读取.有没有一个很好的库我可以用来做类似的事情仍然给JSF一些生命周期控制Thread呢?

java ajax jsf javabeans jsf-2

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

Android上的Javadoc(Eclipse)

我试图在Eclipse中为我的Android项目生成Javadoc html页面.我已尝试使用此处建议-linkoffline参数,以及使用指向我的android.jar文件的参数.这些都不起作用,因为我仍然得到(和其他)警告.我也尝试从命令行运行javadoc工具,而不是使用Eclipse.-classpathpackage android.app does not exist

理想情况下,我想为我的类创建自己生成的页面,所有android.*和java.*类都链接到在线页面.我使用的是Mac OS 10.6和Java版本1.6.0_20.

java eclipse macos android javadoc

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

使用新的“Pressable”组件实现平滑过渡?

我一直TouchableOpacity在我的 React Native 项目中使用它,以方便使用,但我有兴趣尝试新Pressable组件 - 考虑到它的 API 非常灵活。

然而,虽然新的PressableAPI 使我能够轻松地更改style基于pressed状态的道具等内容,但没有像TouchableOpacity!中的不透明度那样平滑/动画过渡。相反,按下/松开时会立即发生转换。

最好的使用方法是什么Pressable,同时又能在按下/未按下的样式更改之间实现良好、平滑的过渡?我想我必须以Animated某种方式使用 API?有人有这方面的例子吗?

animation react-native expo react-native-reanimated-v2

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

如何在 Kotlin 协程中使用阻塞(I/O 绑定)API?

我正在使用Ktor编写一个 Kotlin 服务器- 我的请求处理程序是使用 Kotlin 协程编写的。

我的理解是每个请求处理程序都在 Ktor 的线程池上运行,由于协程的轻量级/可挂起性质,该线程池包含的线程远少于传统的每个请求 1 线程服务器框架的池大小。伟大的!

我遇到的问题是我的应用程序仍然需要与一些阻塞资源(JDBC 数据库连接池)交互,但我的理解是,如果我只是直接从请求协程调用这些阻塞 API,我最终会遇到活性问题- 因为我最终可能会阻塞所有用于处理我的请求的线程!不是很好。

由于我对 Kotlin 和协程的世界还比较陌生,我想知道这里是否有人可以给我一些关于处理这种情况的最佳方法的提示。


我在其他地方看到过Dispatchers.IO几次引用。这被认为是管理这些阻塞呼叫的最佳方式吗?这方面有什么好的例子吗?

我尝试使用的 API 确实允许通过传递Executor. 理想情况下,我还可以将这些调用包装在方便、惯用的 Kotlin API 中以进行suspend事务处理。

jdbc threadpool kotlin ktor kotlin-coroutines

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