Ich möchte einen Dienst erstellen, der Inhalte aus dem Internet herunterlädt und während der Ausführung den Fortschrittsdialog anzeigen möchte. Ich weiß, wie man den Fortschrittsdialog mit asynctask und volley verwendet, aber hier habe ich keine Ahnung, jetzt kann ich auf dem UI-Thread über das Beenden des Dienstes benachrichtigt werden, wenn ich den Dienst benutze.Android - Wie wird der Fortschrittsdialog angezeigt, während der Dienst läuft?
Wie kann ich das erreichen?
-Code folgt
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();
}
Für Dienste sollten Sie eine Benachrichtigung anzeigen. –