Я пытаюсь сделать фоновое обслуживание, которое выполняется, даже если приложение закрыто. эти службы должны прослушивать изменения Firebase и запускать приложение в соответствии с триггером. Я не знаю ли я что-то в коде или даже не близко к правильному ответу не хватает, но вот мой код:Как использовать Firebase EventListener в качестве фоновой службы в android?
public class FireBaseService extends Service {
private HashMap<String, String> fireBaseBattery;
@Override
public void onCreate() {
super.onCreate();
fireBaseBattery = new HashMap<>();
final Firebase firebaseRef_Battery = new Firebase("the url i want to take data from");
firebaseRef_Battery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
fireBaseBattery = (HashMap<String, String>) dataSnapshot.getValue();
String battery = (String) fireBaseBattery.get("battery");
int battery_int = Integer.parseInt(battery);
System.out.println("SERVICE FIREBASE : " + battery);
if (battery_int <= 10) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
И это проявляется:
<uses-permission android:name="android.permission.READ_SMS" />
<application
android:name=".ParseApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service android:enabled="true"
android:name=".FireBaseService">
</service>
<activity
android:name=".Launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Edit: я добавил строку в MainActivity.class запустить службу
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(this, FireBaseService.class));
}
добавить свою службу в тег приложения – Shubhank
Я сделал, но это не сработало – MuhammadNe
отладка, если ваша служба запускается, и в ней выполняется код. – Shubhank