草庐IT

Android 在后台倒数计时器

我有一个Android应用程序,它管理一个显示在应用程序屏幕中的倒数计时器(CountDownTimer类),以显示距离00:00还剩多少时间。我现在的问题是,当我按下主页按钮或启动另一个应用程序时,应用程序/计时器不会在后台运行。所以我怀疑我必须做一个服务,但是怎么做呢?同事们对我说,当设备被锁定时,我必须做一些特别的事情才能让计时器继续。我想在到达0时醒来。执行此操作的最佳方法是什么? 最佳答案 您必须创建您的CountDownTimer类并从Service类扩展它。通过这样做,您的Activity成为一项服务,即使您关闭它也会

Android:定期(每 30 秒)在后台发送位置数据并向服务器请求新数据

场景:在很长一段时间内(即12小时)每30秒向服务器发送一次以在后台获取任何新数据。位置数据需要与此一起发送。当前实现;服务等级;位置监听器,间隔30秒,将经度和纬度值设置为两个局部变量警报管理器每30秒向广播接收器触发一次未决Intent。广播接收器在extras中启动一个带有位置变量的IntentService。IntentServicehttp发布位置并从服务器请求任何新数据。IntentService通过广播接收器将服务器响应发送回主服务类。服务类starts_sticky以确保操作系统重新启动。我尝试了几种不同的变体;我尝试使用Handler和runnable来处理发送到服务

android - 当应用程序在后台(Titanium)时,Android 5 上的推送通知未发送 - 但它在前台发送

我在Android上使用UrbanAirship来接收通知。Appcelerator模块很旧(3年前)https://github.com/appcelerator-modules/ti.urbanairship我正在使用这个fork:https://github.com/rdking/ti.urbanairship/tree/master/android.有了rdking版本,我可以在Android5上收到通知,但只有当应用程序打开时(前台)。如果我打开另一个应用程序或将其关闭(将其置于后台),它将无法获取。我正在使用TitaniumSDK5.1.2.GA(应用程序和模块),使用ND

android - 当应用程序在后台被杀死且设备被锁定时,警报管理器将无法工作

我在这种情况下卡了很久...我想使用闹钟管理器在特定时间显示通知,现在它在下面列出的情况下工作:当应用程序在后台运行时,无论设备是否锁定,都会在正确的时间显示通知。应用程序在后台被杀死后,当设备未锁定时我仍然会收到正确的通知,但是当设备锁定时事情就变了,我无法收到任何通知。这里是代码AlarmReceiver.java,所有需要的权限已经添加到AndroidManifest.xml中:@OverridepublicvoidonReceive(Contextcontext,Intentintent){WakeLocker.acquire(context);Stringaction=int

android - 在后台获取 GoogleMap 快照

我试图在后台获取GoogleMap(来自MapView)的快照,通过回调返回它并在ImageView中显示它。在这样做的同时,我试图让快照部分尽可能独立于布局(因此,尽量避免将MapView添加到布局中)。我尝试过以编程方式创建具有给定大小的MapView,在其上添加一些路径和引脚,获取快照并返回它(全部使用RxJava订阅)但我收到以下错误并且应用程序正在关闭甚至没有“应用停止工作”对话框。FATALEXCEPTION:androidmapsapi-SnapshotProcess:com.package.name.debug,PID:2159java.lang.IllegalArgu

android - 在后台创建新 Intent

我正在寻找一种从我的应用程序中启动另一个应用程序的方法,但焦点不会从我的应用程序转移到已启动的应用程序。我目前通过Intent启动了新应用程序,但是当执行此操作时,新应用程序启动并成为View中的应用程序,我需要将其保留在后台,同时我的应用程序仍在View中。这是为什么?我正在开发一个供内部使用的应用程序,它就像设备的锁屏一样,所以尽管某些事情必须在后台发生,但“锁屏”必须始终在最前面。我已经对Intent和启动其他应用程序进行了一些研究,但找不到我需要的任何东西。希望大家帮忙谢谢!目前终端是这样调用的:Intentintent=newIntent(Intent.ACTION_MAIN

android - 从配对设备中选择第一台设备

如何在不使用for循环的情况下选择pairedDevices列表中的第一个设备?它们是像通常的数组一样从0开始编号还是从​​1开始编号?SetpairedDevices=BA.getBondedDevices(); 最佳答案 Set是一个无序的Collection,其中的项不能通过索引访问。你能做的最接近的事情是这样的:BluetoothDevicefirstDevice=pairedDevices.iterator().next(); 关于android-从配对设备中选择第一台设备,我

android - 应用程序在后台时未触发地理围栏通知

我已经浏览了很多SO帖子,但对我来说还没有任何效果。我试图在设备进入地理围栏时触发通知。但它不会触发,直到打开应用程序。如何在应用程序处于后台时触发通知?地理围栏:publicclassGeofencingimplementsResultCallback{//ConstantspublicstaticfinalStringTAG=Geofencing.class.getSimpleName();privatestaticfinalfloatGEOFENCE_RADIUS=50;//50metersprivatestaticfinallongGEOFENCE_TIMEOUT=24*60*

java - AsyncTask 什么时候在后台运行?

所以请原谅菜鸟问题...我有一个AsyncTask:classDownloadWeatherextendsAsyncTask{}但我注意到有两种方法可以从中获取信息...即使用onPostExecute:@OverrideprotectedvoidonPostExecute(Strings){super.onPostExecute(s);}或者简单地从mainActivity中这样调用它:json=downloadWeather.execute(url).get();据我所知,AsyncTask的全部目的是保持用户界面交互...但是使用MainActivity类中的第二个选项不会导致U

android - 在后台持续更新位置

我正在开发一个应用程序,它将从后台服务持续发送位置更新。我尝试了以下代码。publicclassLocationServiceextendsServiceimplementsLocationListener,GooglePlayServicesClient.ConnectionCallbacks,GooglePlayServicesClient.OnConnectionFailedListener{LocationRequestmLocationRequest;LocationClientmLocationClient;@OverridepublicvoidonCreate(){//c