Articles of 后台进程

Job Scheduler与后台服务

我有一个应用程序,它具有每分钟应该在后台运行的functionA. functionA是应用程序应该连接到数据库,读取一些数据,然后获取设备的当前位置,并根据它们检查条件,如果条件为真,则应该向用户发送状态栏通知,以便当用户点击通知应用程序的用户界面将显示,并发生一些事情。 这个后台任务应该每分钟运行一次,无论应用程序是否被使用,closures,终止(就像facebook或Whatsapp向我们显示通知,无论他们是否在应用程序堆栈中)。 现在我已经search并发现Android提供了Job Scheduler , Background Service , AlarmManager和Handlers 。 但是,我越读到他们,这些陈述就越是矛盾。 1.关于处理程序我已经读过,它们不存在长时间的延迟,并将在系统重新启动后终止。 所以他们不适合我的任务。 2.但AlarmManager似乎是一个很好的候选人的问题,因为如果允许他们存在,即使系统重新启动,并可以重新运行应用程序。 但在Android文档中,警报pipe理器旨在用于必须在特定时间运行的任务(如闹钟)。 但我的任务必须每分钟运行一次。 3.然后是后台服务。 这是更多的任务,像我已经阅读的背景下载,并不打算做我已经解释的东西。 4. JobScheduler似乎不是一个需要永久完成的任务,而是完成特定约束的任务,比如空闲或者没有networking。 那么,这些(或者其他的,如果存在的话)是否推荐用于我在第一部分中解释的任务

后台进程定期扫描用户的位置,并在应用程序未打开时更新本地数据库

我正在创build一个应用程序,每半小时检查一次用户位置,并更新用户在本地数据库中的位置,然后根据用户的位置运行CRUD查询,即使应用程序未运行。 我该怎么做 ? 我已经提到这个http://techtej.blogspot.com.es/2011/03/android-thread-constructspart-4.html文章,我仍然对我的结果是正确的方法感到困惑。 根据这篇文章,我有4个选项可以实现 1)服务:但是由于我觉得这将是一个长期的操作与本地数据库,我觉得我应该忽略这一个。 2)IntentService:这不能执行多个任务,所以我觉得这个也应该避免,因为我必须得到用户的位置和扫描数据库,更新数据库(3任务) 3)线程:我不知道如何调用这个应用程序没有打开 4)AsyncTask:我不知道如何调用这个应用程序没有打开。 基本上我在寻找类似CRON JOB的东西,在位置数据上工作时在本地数据库上运行。 如果你能把我和一些教程联系起来,并且用一个简单的例子来回答,让我了解所有4种方法的区别,那就太好了。 //在3月16日编辑:我已经读了一些关于在API 21中引入的JobScheduler,但不知道它是否也支持,直到姜饼,这是我的问题的正确方法 感谢名单

如何获得android后台运行的进程的细节

我想列出所有后台正在运行的进程,并从一个后台服务(没有UI)获取这些进程的详细信息。 详情如下: 1. Name 2. Memory usage 3. Application related to process 4. Files they are accessing 5. Last modified time of files 我可以得到后台运行进程列表,但如何获得内存使用情况,他们正在访问的文件和上次修改时间的文件。 这可能在API级别实现吗? 任何人都可以指导我如何做到这一点? 任何人都可以给我想法或build议与此有关的有用链接。

使用phonegap在后台执行javascript

我创build了一个应用程序,每隔“X”分钟就需要触发一次javascript事件。 我正在使用电话差距构build部署在Android / iPhone /黑莓,但我当然坚持,因为JavaScript计时器不会在后台触发(当他们最小化的应用程序)。 我想知道是否phonegap有一些能力,当应用程序在后台运行时触发JavaScript事件。 或者有什么办法可以轻松地在这些主stream手机上实现这一点? 我只需要从手机的地理位置信息发射ajax电话。

Phonegap应用程序在收集位置时死于背景

我有一个PhoneGap内置的应用程序,它使用navigator.geolocation调用来跟踪移动设备的坐标。 用户在控制开始跟踪以及结束它。 该应用程序的构build是为了在后台接收坐标更新。 该应用程序是为Android和iOS设备发布的。 Android版本似乎很容易在后台崩溃。 在某些手机上,它可以正常工作,但是在很多应用程序中,应用程序只会在后台收集坐标数据时死亡。 我已经在下面发布了一个LogCat日志。 Activitypipe理器在进程上调用“不再需要”(以下以粗体显示)之后不久, CCWalkerActivity就会发生WIN DEATH。 但是,我无法确定这是为什么发生,为什么这么频繁发生。 这是Phonegap的问题吗? 会创build一个插件,可以进程前台服务(使用startForeground() )是有益的吗? 10-19 14:50:12.439 D / dalvikvm(496):GC_CONCURRENT已释放1917K,28%空闲12417K / 17031K,外部11622K / 13670K,暂停12ms + 10ms 10-19 14:50:13.040 D / CordovaLog(6275):isGPSEnabled成功,准确度:12 10-19 14:50:13.040 D / CordovaLog(6275):file:///android_asset/www/lib.js:第24行:isGPSEnabled成功,准确性:12 10-19 14:50:13.040 I / Web控制台(6275):isGPSEnabled成功,准确性:12位于file:///android_asset/www/lib.js:24 10-19 14:50:13.072 D / CordovaLog(6275):collectLocationData成功:12 10-19 14:50:13.072 D / CordovaLog(6275):file:///android_asset/www/lib.js:第24行:collectLocationData成功:12 10-19 14:50:13.072 I / Web控制台(6275):collectLocationData成功:12在file:///android_asset/www/lib.js:24 […]

Android:如何完全杀死作为后台进程单独运行的服务?

我有一个应用程序,有一个活动,这是作为常规的graphics用户界面和服务。 我的活动有两个button。 一个button来停止进程,一个button来终止进程。 我分别使用这些方法来启动和停止我的过程: Intent i = null; Button start; Button stop; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); i = new Intent(this, Service.class); start = (Button) findViewbyId(R.id.start_button); stop = (Button) findViewById(R.id.stop_button); start.setOnClickListener(new OnClickListener(){ public void onClick(){ startService(i); } } stop.setOnClickListener(new OnClickListener(){ public void onClick(){ stopService(i); } } } 此服务不受约束的行为或应用程序。 我在Manifest中configuration了服务,如下所示: <service android:name="com.example.mypackage.Service" android:process=":remote"> <intent-filter> <action android:name="com.example.mypackage.Service" […]

解除进度对话框

我有一个情况,我加载了一堆图像。 在这个过程中,我正在尝试显示一个进度对话框,直到图像完全加载。 我已经overrided了onBackPressed()方法,这样当用户按下后退button时,活动就完成了。 但是,如果我在显示进度对话框时按下后退button,则不会调用后退按键事件。 所以我试着提供progressDialog.setCancelable(true) 。 所以这现在允许我closures进度对话框,但是我的后退关键事件并没有被调用,所以我的活动在后台加载图像。 那么当用户按下后退键时,如何使progressDialog和activity都停止。

Android的通知在后台如果应用程序closures?

我试图在Android通知栏中显示通知,即使我的应用程序已closures。 我试过寻找,但我没有find帮助的运气。 一个例子是新闻应用程序。 即使电话屏幕closures或新闻应用程序closures,它仍然可以发送最近消息的通知,并将其显示在通知栏中。 我怎么可以在我自己的应用程序中这样做呢?

在Android上,正在运行的进程和caching的后台进程之间有什么区别?

在Android上,当我查看“设置” – >“应用程序”时,在“运行”标签下,我可以看到内存被分割为“已用内存”和“无内存”两个部分,进入“已用内存”或“无内存”。 “无内存”部分中的应用程序被称为“caching后台进程”。 那么,“caching的后台进程”是什么? 他们仍然在记忆中,而不是切换到“磁盘”(如台式机/笔记本电脑),对不对? 当用户select其中一个“caching的后台进程”时,它会立即显示,因为它仍然在内存中,就像一个正在运行的进程一样,对吧? Android在“caching”应用程序时做了什么?

在Android中的同步和向下同步?

我正在开发一个销售点应用程序,需要非常好的同步机制。 我们有Magento数据库。Android设备有SQLite本地Db。 现在我们需要按以下方式进行同步: 本地——同步到—————>服务器(上同步) 服务器——同步到—————>本地(向下同步) 有两件事情: 1)写入(如何保重??) 对于我在本地进行的每一项更改,都会直接将本地服务器同步到服务器 2)回写(如何保重???) 每当服务器发生变化时,我们需要将所有本地人与服务器同步。 所以,任务是:确定一个服务器更新 并同步我们的本地人。 就像有4个设备在商店中运行,我们已经通过一个设备添加了一个新的客户。 现在我想要的三个其他设备本地数据库也更新有关该客户和服务器的信息也更新。 我听说过后台线程,并在一段时间之后运行线程。 但是,做什么不影响应用程序的最好方法是什么? 所有大零售商店也使用同步过程。 他们用的是什么? 任何帮助表示赞赏。