我正在开发一个在后台计算算法的应用程序。从应用程序启动到结束。这是一个跟踪算法(现在进一步解释算法的工作原理)。
因此,需要在应用程序的所有屏幕上计算后台任务,而不管用户在应用程序上的操作、单击、wifi通信消息(已在应用程序上完成),当算法在后台运行时,需要完成所有操作。
它是异步任务吗?如果没有,还有什么?应用程序正在运行,算法正在特定屏幕上计算,我想让它成为一个后台进程,与当前应用程序屏幕无关。
请举例说明
P、 S-进一步开发,如果现在不需要,则无需讨论:1。下一步是插入一个指示(虚拟灯泡),该指示在到状态之间变化取决于每次的算法结果。2、该算法利用FTDI芯片从连接在手机上的USB设备获取数据,因为手机是主机。
很明显,您需要在独立的线程中执行您的算法。您必须选择如何执行此操作。
我的建议是服务或意向服务。
https://developer.android.com/training/run-background-service/index.html
您可以在这里获得一个很棒的示例,其中一个服务在后台运行,每个服务执行一段时间。
监控android上其他应用程序的应用程序
使用广播接收器
您需要在清单中定义一个操作名为android的接收方。意图行动BOOT\u已完成。
<!-- Start the Service if applicable on boot -->
<receiver android:name="com.prac.test.ServiceStarter">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
还要确保包含已完成的引导权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
为此使用Service使任何内容持久化。如果系统启动,则使用接收器接收Boot Up事件以重新启动服务。
引导时启动服务的代码。让服务做你的工作,检查短信或任何你想要的。你需要在MyPersistingService中完成你的工作,自己定义它。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class ServiceStarter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent("com.prac.test.MyPersistingService");
i.setClass(context, MyPersistingService.class);
context.startService(i);
}
}
很明显,无论用户在前台玩什么活动,在后台执行长时间运行的操作都是您需要的服务,这正是他们的主要目的。您可以在此处阅读有关服务的更多信息。
问题内容: 我正在尝试从CGI脚本启动后台进程。基本上,提交表单时,CGI脚本将向用户指示他或她的请求正在处理中,而后台脚本则进行实际处理(因为该处理往往会花费很长时间。)我面临的问题是Apache不会在子脚本终止之前将父CGI脚本的输出发送到浏览器。 一位同事告诉我,我想做的事情是不可能的,因为无法阻止Apache等待CGI脚本的整个过程树消失。但是,我在网络上也看到了很多关于“双叉”技巧的参考
我正在试验的Android信标库,我能够使其工作与苹果兼容的信标监测和测距添加自定义解析器(请参阅这是正确的布局,以检测iBeacons与AltBeacon的Android信标库?) 现在我正在尝试使用此处显示的示例代码编写一个在后台启动的应用程序: http://altbeacon.github.io/android-beacon-library/samples.html 这是我的代码: 不幸的
启动 1. 轻触主画面上您想启动的应用程序图标。 显示LiveArea™。 2. 轻触[开始]。 中断/继续 按下PS键即可返回LiveArea™。若要继续,请轻触[继续]。 关闭 1. 按下PS键。 返回LiveArea™。 2. 请由画面右上角将LiveArea™撕下。
问题内容: 我希望能够从现有的Java应用程序启动Java服务器进程,并监视stdoutput和stderror并将该输出重定向到文件。是使用“ Runtime.exec”并像对待其他任何OS进程一样对待应用程序的最佳方法,还是有一些更适合新JVM的方法。 这是在Java 1.5上 问题答案: 而不是,您可能应该使用,尽管我不知道其他情况是否更适合您的情况(尤其是运行Java进程)。