我正在寻找一个可以用来调用基于Web的REST API的服务.
基本上我想在app init上启动服务然后我希望能够要求该服务请求URL并返回结果.与此同时,我希望能够显示进度窗口或类似的东西.
我已经创建了一个目前使用IDL的服务,我已经阅读过你只需要这个用于跨应用程序通信的地方,所以请考虑这些需求,但不确定如何在没有它的情况下进行回调.此外,当我点击post(Config.getURL("login"), values)应用程序似乎暂停一段时间(似乎很奇怪 - 认为服务背后的想法是它运行在不同的线程!)
目前我有一个带post的服务,里面有http方法,一些AIDL文件(用于双向通信),一个ServiceManager,它处理启动,停止,绑定等服务,我正在动态创建一个具有特定代码的Handler根据需要进行回调.
我不希望任何人给我一个完整的代码库来工作,但一些指针将不胜感激.
代码(大部分)已满:
public class RestfulAPIService extends Service {
final RemoteCallbackList<IRemoteServiceCallback> mCallbacks = new RemoteCallbackList<IRemoteServiceCallback>();
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
public IBinder onBind(Intent intent) {
return binder;
}
public void onCreate() {
super.onCreate();
}
public void onDestroy() {
super.onDestroy();
mCallbacks.kill();
}
private final IRestfulService.Stub binder = new IRestfulService.Stub() {
public void doLogin(String username, String password) {
Message msg = new Message();
Bundle data = new …Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,我有一个带适配器的简单列表视图.有一个繁重的查询是用数据填充列表视图.所以我把它放到另一个线程中运行的IntentService.
IntentService通常单独运行,只是为了查询一些数据并将其插入SQLite数据库.
但现在我想有以下可能性:
这可能吗?我在这个主题的Stack Overflow上阅读了很多问题.但在每个问题中,都有另一种解决方案.所以我想问你们所有人:哪种解决方案最符合我的目的?
multithreading android broadcastreceiver android-intent android-activity
常见方案 - 具有后台服务的活动用于轮询服务器.
该服务将通过AlarmManager定期运行,并执行活动任务(用户点击按钮,从服务器获取内容).
我想知道这里的最佳做法.我认为最好的设计是Android LocalService示例:http: //developer.android.com/reference/android/app/Service.html#LocalServiceSample
但是在示例中,Activity具有对活动的引用,mBoundService但没有反向连接(Service无法调用Activity).
服务调用活动的最佳方式是什么?
我是否使用Intents,BroadcastReceivers,Messages?怎么样?
service android communication android-intent android-activity
这是我的代码Activity.启动一个Intent,然后一个Connection,对吧?
hello_service = new Intent(this, HelloService.class);
hello_service_conn = new HelloServiceConnection();
bindService( hello_service, hello_service_conn, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)
但我的问题是......连接内部是什么?
class HelloServiceConnection implements ServiceConnection {
public void onServiceConnected(ComponentName className,IBinder boundService ) {
}
public void onServiceDisconnected(ComponentName className) {
}
};
Run Code Online (Sandbox Code Playgroud)
有人能告诉我在ServiceConnected和onServiceDisconnected上添加了哪些代码?
我只想要一个基本的连接,以便我Activity和Service他人可以互相交谈.
编辑:我找到了一个很好的教程,我实际上可以关闭这个问题,除非有人想回答.http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/
我想将回调传递给IntentService.这是我目前的代码:
我的回调界面
import android.os.Message;
public interface SampleCallback {
public void doSomethingFromCurrentThread();
public void doSomethingFromUIThread(final Message msg);
}
Run Code Online (Sandbox Code Playgroud)
我的IntentService
import android.app.IntentService;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
public class SampleCallbackIntentService extends IntentService {
private final String LOG_LOGCAT_TAG = "SampleCallbackIntentService";
private final SampleCallback _callback;
private Handler _handler;
public SampleCallbackIntentService(String name, SampleCallback callback) {
super(name);
_callback = callback;
}
@Override
public void onCreate() {
super.onCreate();
// initialize variables for pause & resume thread
_mPauseLock = new Object();
_mPaused = false;
_mFinished …Run Code Online (Sandbox Code Playgroud)