我怎么知道我的应用程序是否在后台?

我需要根据远程事件从我的应用程序开始一个前台服务。 大多数情况下,用户会在应用程序中看到该应用程序,而在少量时间用户将在不同的应用程序上,或者屏幕将会关闭。 所以我想要在Android 8+上决定是否应该根据应用程序是否在后台调用startService或startForegroundService 。 那我怎么知道这个? 编辑:我确实看到另一个答案,你可以保持onPause和onResume标志,但我希望现在会有一个更好的办法?

如何处理Retrofit Rx onError中不同难度的错误

我想知道你的方式来处理不同types的错误(如httpexception,没有互联网连接exception等)在改进Rx onError,而不使用instanceof像这里提出的: 如何在RxJava或在这里处理 Retrofit 2中的网络错误 : Handle改造2 RX中的错误 在kotlin中,我将简单地为每种可投掷项目做一些扩展函数来做我想做的任何事情。 但是我不得不在项目中使用Java。 任何不错的建议? 是这样的构建某种error handling程序的方法: public interface ErrorHandler { void handleError(Exception e); void handleError(HttpException e); void handleError(NullPointerException npe); } 好? 我知道这不是因为每次我需要处理另一个特定的错误,我不得不改变接口,所以这是违反开放原则。 但我找不出任何解决办法。 欢呼Wojtek

“包含Kotlin支持”checkbox不在Android Studio 3.0 Canary 5中

我想在我的Windows 7 64位机器上的Android Studio 3.0 Canary 5(171.4141229)中创建一个Kotlin项目。 但是,当我启动一个新项目时,向导的第一个窗口不显示“包括Kotlin支持”checkbox(它也不显示“包括C ++支持”checkbox)。 它看起来像这样: 我能做些什么来创建Android Studio 3.0 Canary 5中的Kotlin项目? 所有的教程(使用加那利1)说,这个checkbox应该在那里。

Rx:即使调用了onError,如何得到最后一个元素?

我正在使用RxJava,我需要做两件事情: 获取Observable发出的最后一个元素 确定是否调用了onError ,而onCompleted 我看过使用last和lastOrDefault (这实际上是我需要的行为),但我一直没有能够解决onError隐藏最后一个元素。 我可以使用Observable两次,一次获得last值,一次获得完成状态,但到目前为止,我只能通过创建我自己的Observer来完成这个任务: public class CacheLastObserver implements Observer { private final AtomicReference lastMessageReceived = new AtomicReference(); private final AtomicReference error = new AtomicReference(); @Override public void onCompleted() { // Do nothing } @Override public void onError(Throwable e) { error.set(e); } @Override public void onNext(T message) { lastMessageReceived.set(message); } public Optional getLastMessageReceived() […]

任何机会让CodeMirror在Android Chrome上玩?

我知道CodeMirror在移动方面有问题,行为因使用扩展而有所不同。 然而,对我来说,在Android上遇到它的地方似乎几乎不可用。 看看Kotlin Koans并尝试使用Backspace键。 除此之外,我得到了一些gobbledygock和一些换行符。 我没有find一个解决这个问题的方法。 尝试使用屏幕键盘或蓝牙物理设备运行Android 7和8的两个设备(OnePlus 3T和Pixel C)。 结果几乎是一样的。 这似乎很奇怪,我很惊讶没有人(谷歌?)正在加紧解决这个问题。 我想使用Android设备进行基本的(基于CodeMirror的)编码,我非常感谢有关解决这个烦恼的建议。 🙂 谢谢 代码编辑器在 使用WebView的 每个按键 Android本机应用程序的 当前行上插入一个新行 ,退格不起作用

Android数据绑定与自定义适配器

我试图使用Android的数据绑定function与自定义适配器和ListView。 我无法覆盖自定义适配器的getView方法: public class ChecksAdapter extends ArrayAdapter { public ChecksAdapter(Context context, ObservableList checks) { super(context, R.layout.check, checks); } @Override public View getView(int position, View convertView, ViewGroup parent) { CheckBinding binding = DataBindingUtil.inflate( LayoutInflater.from(getContext()), R.layout.check, parent, false); binding.setCheck(this.getItem(position)); // Return what? } } 所以我的问题是: 我在哪里得到我应该返回的View元素? 或者换句话说,我怎样才能将对象绑定到充气/转换视图? 如何在使用数据绑定时重用convertView ? 这是实现这个的正确方法吗? 该指南不是很清楚ListViews 以下是指南中唯一的ListViews参考: 如果您在ListView或RecyclerView适配器内使用数据绑定项目,则可能更愿意使用: ListItemBinding binding = ListItemBinding.inflate(layoutInflater, […]

如何以编程方式检查是否安装了应用程序?

我们已经编程安装了应用程序。 如果应用程序已经安装在设备中,则应用程序将自动打开。 否则安装特定的应用程序。 引导我。 我不知道。 谢谢。

com.android.tools.build:gradle版本高于2.0.0时,无法在物理设备上运行/部署应用程序

当我更新com.android.tools.build:gradle到高于2.0.0的版本时,我遇到了部署应用程序的问题。 当我将其更改为2.1.2时,项目编译并由gradle构建,但没有发生任何事情,就像忽略它。 我试图在Android 4.0.3上运行LG Swift L5 Optimus上的应用程序 这里是项目的build.gradle: buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.0.0’ } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 在这里build.gradle的应用程序: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ android { compileSdkVersion 23 buildToolsVersion “23.0.3” defaultConfig { applicationId “keddit.com.keddit” minSdkVersion […]

Kotlin将对象转换为另一个对象

http://cm08323.tmweb.ru/android/determinace/json/images.json我有一些JSON到服务器。 我的数据库类: @Entity data class Image(val url: String = “”, val urlAnswer: String = “”, val race: String = “”) : DisplayableItem, Persistable api接口: interface ImagesAdi { @GET(“android/determinace/json/images.json”) fun getImages(): Single<List> } … class ImagesResponse( val images: List) class ImageSingle(val url: String, val url_answer: String, val race: String) 我的映射器用于转换ImagesResponse到Image : @Singleton class ChooseRaceMapper @Inject constructor() […]

Java:生的servlets web app概念理解

我目前正在探索Java,并且只有路由器支持才能findnano框架。 所以我正在阅读有关servlet,并不能完全理解的概念:我应该有我的应用程序可以有每个该死的请求的servlet? 那只是无法控制的混乱。 下面的解决方案是可行的: 我只有一个servlet捕获所有的请求。 我有一些路由器服务,在这个servlet中将处理url,并简单地返回适当的POJO类的方法调用lambda接受响应和请求。 例如控制器之一(他们都是这样)(在Kotlin,但你明白了): class Foo { fun bar(request: HttpServletRequest, response: HttpServletResponse) { response.getWriter().println(“hello world!”) //or eg write some freemaker template } } 我的路由器会是这样的: Router.addRoute(“GET”, “foo/bar”) { request, response -> Foo().bar(request, response) } //other routes added the same 例如在servlet中,它只会: class TheGodServlet : HttpServlet { override doGet(HttpServletRequest request, HttpServletResponse response) { val handler […]