Я пытаюсь создать свой сервис, который загружает данные через Интернет, и после того, как сервис заканчивает, отправляет intent
in onDestroy()
и получает его на вкладке с broadcastreceiver
, но на самом деле он никогда не показывает результатв onReceive()
.Вот что я делаю:
package com.stampii.stampii.collections;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
public class MyService extends Service{
ThreadSave myThread;
public static boolean state;
public class LocalBinder extends Binder {
MyService getService() {
return MyService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate(){
myThread = new ThreadSave(this, null);
myThread.start();
state = true;
}
@Override
public void onDestroy(){
super.onDestroy();
state = false;
Intent intent = new Intent("finish");
this.sendBroadcast(intent);
}
@Override
public void onStart(Intent intent, int startid) {
super.onStart(intent, startid);
}
}
Это мой BroadcastReceiver:
receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("finish")) {
Log.e("","UGJKHFKLJGHKGKHGKHGKJGLGKLJHKJHVkajhgflasygdfkashfvlazsfklasfylaisyfhg;aisfglafgalskfgl");
}
}
};
registerReceiver(receiver, new IntentFilter("finish"));
и как я запускаю / останавливаю службу:
public void getCollectionsInfo(Context context){
progressBar.setVisibility(View.VISIBLE);
sync.setImageResource(0);
SharedPreferences isLogged = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = isLogged.edit();
editor.putBoolean("getProgBarCollection", true);
editor.commit();
/*mythreadSync = new ThreadSave(context, mUpdateUpdateCollections, progressBar);
mythreadSync.start();*/
this.stopService(new Intent(this, MyService.class));
this.startService(new Intent(this, MyService.class));
}
Итаку меня вопрос, правильно ли я делаю и как получить конец потока, который работает в сервисе, и обновлять пользовательский интерфейс после этого на BroadcastReceiver.