我想创建一个服务,从web下载内容,我想在执行时显示进度对话框。我知道如何使用asynctask和volley的进度对话框,但在这里我不知道,现在我可以在UI线程上通知服务结束时使用服务。
我该如何做到这一点?
代码正在关注
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onClickStart(View v) {
startService(new Intent(this, MyService.class));
}
public void onClickStop(View v) {
stopService(new Intent(this, MyService.class));
}
}
public class MyService extends Service {
public void onCreate() {
super.onCreate();
}
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(LOG_TAG, "onStartCommand");
someTask();
return super.onStartCommand(intent, flags, startId);
}
public void onDestroy() {
super.onDestroy();
}
public IBinder onBind(Intent intent) {
return null;
}
void someTask() {
new Thread(new Runnable() {
public void run() {
for (int i = 1; i<=5; i++) {
Log.d(LOG_TAG, "i = " + i);
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
stopSelf();
}
}).start();
}
答案 0 :(得分:0)
服务和活动之间有不同的通信方式。
您可以从服务发送广播,并使用BroadcastReceiver在活动中处理它。
或者您也可以绑定服务并在服务完成任务后发回任何命令。