草庐IT

android - 在数据库做一些繁重的后台工作时卡住和应用程序的最佳方法?

我有一个后台服务,每天一次在事务中执行一些繁重的工作。如果用户恰好在此时启动应用程序,我希望他们坐等直到它完成(大约10秒左右)。在所有Activity中执行此操作的最佳方法是什么?在每个activity的“onResume”函数中检查服务是否运行?我们怎么知道它什么时候完成?我猜是本地广播...最佳实践有人吗?更新:我已经设法停止“onResume”直到我的服务完成。问题是用户在那之前只会看到一个空白屏幕。我在onResume暂停时尝试了progressdialogs和常规对话框。但它们都只在onResume返回时显示,这违背了目的。换句话说,进度对话框不会在调用“show()”后立

android - 如何模拟 Android 操作系统卸载后台应用程序?

出于测试目的,我需要轻松重现Android系统决定保存状态并终止后台应用程序的情况,其方式与通常用于内存优化目的的方式相同。事实上,我还需要测试当用户切换回它时,这样一个被删除的进程的恢复过程。直接的方法是打开应用程序,然后打开更多其他任务以尝试分配尽可能多的资源。那太复杂和不可靠了。我找到了thisquestiononSO,但答案意味着简单地杀死进程,这似乎不是等价的,因为当用户决定切换回应用程序时,似乎没有办法进一步自动恢复被杀死的进程并保存状态。如果我理解正确,那么在如此明确地终止应用程序之后,如果启动,将从一开始就运行,而不是从保存的状态运行。如果我错了,请纠正我。根据Andr

android - 从后台关闭应用程序后取消通知

我有一个在通知栏上显示通知的Activity。如果用户进入后台按下主页按钮,我会保留通知(这是我需要的),但是当用户关闭应用程序时,我需要取消通知,这就是我的问题。我试图在onDestroy上取消通知,但它没有被触发。我尝试为通知设置setOngoingtrue。我该如何处理?每次用户进入后台然后关闭应用程序时,我需要从通知栏中删除通知,但如果用户将应用程序保留在后台,我需要通知。 最佳答案 您在创建通知时有一个ID,对吗?然后你所要做的就是使用那个ID来取消它。例如:NotificationManagermNotification

android - 我可以更新后台 Activity 的用户界面吗?

这个问题比编码相关的问题更概念化。我有一个带有ActivityA和B的应用。我从ActivityA调用了一个AsyncTask,在调用过程中,我不想阻止用户显示进度对话框,所以我的用户可以自由地在应用程序中四处走动而不会厌倦等待。现在,查询是AsyncTask或者说Service正在从ActivityA调用,它负责下载某种数据从服务器。在进行调用时,用户更改了Activity并且ActivityA已进入后台。现在,当用户在应用程序中自由移动时,他只想返回到ActivityA来检查下载状态,(假设我设置了一些数据到我的TextView).现在的问题是,一旦下载结束,而我的Activity

android - Firebase onMessageReceived(RemoteMessage remoteMessage),当应用程序处于后台时不会被调用

这个问题在这里已经有了答案:FirebaseonMessageReceivednotcalledwhenappinbackground(30个答案)关闭6年前。在FirebaseonMessageReceived(RemoteMessageremoteMessage)中,当您的应用程序处于前台时将调用此方法。因此,在单击通知时,您可以打开一个不同的Activity,比如NotiicationActivity。但是如果你的应用程序在后台,那么这个方法将不会被调用,并且在点击通知时只会打开一个LauncherActivity。那么即使我们的应用程序处于后台,如何在单击通知时打开Notifi

android - 在 Oreo 启动时启动后台服务

我有一个非常具体的用例。我需要启动一个在Android8中启动时运行Web服务器的后台服务。任何人都可以推荐一种实现此目的的方法吗?(在AndroidO中)。看来你不能再开机启动后台服务了……还有别的办法吗?JobService还是运行前台服务?我的代码适用于低于8的Android,但它似乎不适用于O。list:ServiceStarter(扩展BroadcastReceiver):@OverridepublicvoidonReceive(Contextcontext,Intentintent){HTTPServerService.startService(context);}HTTP

Android:后台线程可能会阻塞,直到 UI 线程完成操作?

后台线程是否有可能将消息排入主UI线程的处理程序并阻塞直到该消息被处理?这样做的背景是我希望我的远程服务在其主UI线程之外为每个已发布的操作提供服务,而不是从它接收IPC请求的线程池线程。 最佳答案 这应该可以满足您的需求。它将notify()和wait()与已知对象结合使用,使该方法本质上是同步的。run()中的任何内容都将在UI线程上运行,并在完成后将控制权返回给doSomething()。这当然会使调用线程进入休眠状态。publicvoiddoSomething(MyObjectthing){Stringsync="";cla

android - 进入后台时cocos2d-x游戏崩溃

我的cocos2d-x游戏在进入后台时崩溃了。这是来自AppDelegate的一些代码://Thisfunctionwillbecalledwhentheappisinactive.Whencomesaphonecall,it'sbeinvokedtoovoidAppDelegate::applicationDidEnterBackground(){CCDirector::sharedDirector()->pause();CCUserDefault::sharedUserDefault()->flush();CocosDenshion::SimpleAudioEngine::shar

android - FusedLocationApi 与 PendingIntent 用于后台位置更新。无法接收更新

来自google的示例源代码很容易在前端实现连续位置更新,但我仍然无法清楚地了解或理解后台位置更新如何使用FusedLocationApi和PendingIntent。LocationService类:publicclassLocationServiceextendsIntentService{privatestaticfinalStringTAG=LocationService.class.getSimpleName();privatestaticfinalStringACTION_LOCATION_UPDATED="location_updated";privatestaticfi

android - 方向更改后如何将 fragment 重新加载到后台堆栈

我的Android应用程序有一个注册流程设置和一个Activity,我将这些步骤作为fragment加载到Activity布局中。现在每个fragment类都实现了一个在RegisterActivity中实现的公共(public)接口(interface),以便我知道加载下一步fragment并将新fragment添加到后台mFragmentTransaction.addToBackStack(mStepOne.TAG);现在通过4个步骤一切正常,我可以通过这些步骤返回,同时在每个fragment中保留输入的数据,如果它保持相同的方向(纵向)但是一旦我改变方向,fragmentView