У меня действительно очень плохая проблема. У меня есть одна служба уведомлений, которая работает нормально, когда я тестирую, она работает нормально, я выключаю / включаю 10 раз, чтобы увидеть, если служба не работает или возвращает ноль, но она работает нормально, я также закрываю приложение много раз. чтобы увидеть, если его возвращаемое значение равно нулю, но работает нормально. но иногда, когда я ежедневно использую свое телефонное приложение, показывайте принудительное закрытие, например, когда я использую другие приложения, cra sh система firebase говорит, что getaction или намерение равно нулю. Пожалуйста, помогите мне, что я делаю не так
cra sh система ![enter image description here](https://i.stack.imgur.com/rigCr.png)
![enter image description here](https://i.stack.imgur.com/Slo6E.png)
это мой сервисный код:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
sp = getSharedPreferences("accdata", Context.MODE_PRIVATE);
namesaveget = sp.getString("nameacc","No Account");
int getwhattodo = intent.getIntExtra("service_call",0);
if (intent == null || intent.getAction() == null || getwhattodo == 0) {
Log.e("receiver","service faild");
Crashlytics.log("service faild to call");
if (getwhattodo == 0) {
stopSelf();
}
}
if (intent != null && getwhattodo == 2) {
Log.e("receiver","call done");
createNotificationChannel();
showMainNotification();
showSubNotifications();
Crashlytics.log("service call noti");
}
return START_STICKY;
}
это мой приемник, который вызывает мой сервис:
@Override
public void onReceive(Context context, Intent intent) {
Log.e("receiver","work");
if (isNetworkConnected(context) == true) {
Log.e("receiver","wifi on");
Intent i = new Intent(context,ServiceNotifications.class);
i.putExtra("service_call",2);
context.startService(i);
} else {
Log.e("receiver","wifi off");
}
}
public static boolean isNetworkConnected(Context c) {
ConnectivityManager connectivityManager =
(ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
я также устал: использовать сервис start_stick, он не будет работать. я пытаюсь использовать intent extra int вместо getaction, но это тоже не сработало.
, поэтому любое решение для этого, что я делаю неправильно.