2012-09-26 57 views
0

第一个问题: 我知道在Activities only视图中应该实现内容,但是通常为每个更长的计算过程启动自己的服务?Android - 后台计算

第二个问题: 与服务的通信在代码中非常广泛。如果你想在服务上调用一个方法,你必须实现IPC的机制?或者是否也可以在不使用AIDL文件的情况下调用本地服务上的方法?

回答

1

根据您想要执行的任务考虑使用AsyncTaskIntentService。在这里最好使用常规Service,而不是最适合您的需求。

如果您使用常规的Service,您可以轻松地传递您的数据或参数或任何其他内容Intent。你不需要任何IPC。

+0

我也可以传递Intents中的对象吗? –

+0

为什么使用asyncTask或服务比创建一个在后台执行计算的普通java线程更好? –

+0

@ TobiWeiShaar AsyncTask是助手类,但是在Android上进行线程化时,您可能会发现它比'直接'Java线程更适合使用。我相信你也可以用Java线程来做你想做的事情,但是AsyncTask应该简化它。如果您不确定,请尝试AsyncTask:http://developer.android.com/reference/android/os/AsyncTask.html –

1

第一个问题:您可以启动一个AsynTask以获得更长的计算过程,服务通常用于在后台应用程序时执行操作。第二个问题:你可以调用任何Method在你的服务上,使用空闲使你的服务可用于多个应用程序,女巫不是简单服务的情况,另外,样本服务运行在与你的服务相同的应用程序进程上活动,女巫不是闲置服务的情况。