Java не получается послать Intent

98
03 февраля 2022, 21:30

Я пытаюсь передать Intent из сервиса в MainActivity в BroadcastReciver, но либо интент не передается, либо BroadcastReciver его не принимает. Ниже код Activity где я должен получать intent

    final String LOG_TAG = "myLogs";
public final static String PARAM_SRVRESP = "srvresp";
public final static String PARAM_GTOKEN = "task";
BroadcastReceiver br;
public final static String BROADCAST_ACTION = "com.catsoftdevelopment.servicetest";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    bindService(new Intent(MainActivity.this, MyTestService.class), sConn, Context.BIND_AUTO_CREATE);
    Log.d(LOG_TAG, "BroadCast Reciever created");
    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    br = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            String gtoken = intent.getStringExtra(PARAM_GTOKEN);
            String srvresp = intent.getStringExtra(PARAM_SRVRESP);
            Log.d(LOG_TAG, "onReceive: srvresp = " + srvresp + ", gtoken = " + gtoken);
            if (intent.getAction()==Intent.ACTION_MAIN){
                Log.d(LOG_TAG, "onReceive: srvresp = " + srvresp + ", gtoken = " + gtoken);
            }
        }
    };
    IntentFilter intFilt = new IntentFilter(BROADCAST_ACTION);
    registerReceiver(br, intFilt);
}
protected void onDestroy() {
    unbindService(sConn);
    super.onDestroy();
}
boolean bound = false;
MyTestService myTestService;
ServiceConnection sConn = new ServiceConnection() {
    public void onServiceConnected(ComponentName name, IBinder binder) {
        Log.d(LOG_TAG, "MainActivity onServiceConnected");
        MyTestService.MyTestBinder mybinder = (MyTestService.MyTestBinder) binder;
        myTestService = mybinder.getService();
        bound = true;
    }
    public void onServiceDisconnected(ComponentName name) {
        Log.d(LOG_TAG, "MainActivity onServiceDisconnected");
        bound = false;
    }
};
    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
    }

Service откуда я передаю intent

public class FcmTokenRegistrationService extends IntentService {
public FcmTokenRegistrationService() {
    super("FcmTokenRegistrationService");
}
@Override
protected void onHandleIntent(Intent intent) {
    FirebaseInstanceId.getInstance().getInstanceId()
            .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                @Override
                public void onComplete(@NonNull Task<InstanceIdResult> task) {
                    if (!task.isSuccessful()) {
                        Logg.d("Firebase getInstanceId failed " + task.getException());
                        return;
                    }
                    // Get new Instance ID token
                    String token = task.getResult().getToken();
                   //MainActivity.GetNewGtoken(token);
                    Logg.d("Firebase registrationToken=" + token);
                    Intent gtokintent; = new Intent();
                  gtokintent.setAction(Intent.ACTION_MAIN);
                    gtokintent.putExtra(MainActivity.PARAM_GTOKEN, token);
                    sendBroadcast(gtokintent);
                }
            });
}
}

Если шагать в дебаге эти строки почему-то не выполняются

   Intent gtokintent; = new Intent();
   gtokintent.setAction(Intent.ACTION_MAIN);
   gtokintent.putExtra(MainActivity.PARAM_GTOKEN, token);

со строки Logg.d("Firebase registrationToken=" + token); сразу перепрыгивает на sendBroadcast(gtokintent);

Answer 1

Решил проблему, проблема крылась в глюке AndroidStudio, переоткрыл студию, сделал Rebuild проекта и все пошло! Спасибо за комментарии

READ ALSO
Не загружается реклама Admob в Android Studio I/Ads: Ad failed to load : 0

Не загружается реклама Admob в Android Studio I/Ads: Ad failed to load : 0

Я пытаюсь вставить Admob рекламу в пустое приложение Android StudioЯ пытался как подключать проект к firebase самостоятельно, так и делать это через кнопку...

89
Ошибка NullPointerException в JavaFx

Ошибка NullPointerException в JavaFx

делаю чат на java, но столкнулся с ошибкой и не понимаю, как ее решитьОшибка:

95
IndexOutOfBoundsException

IndexOutOfBoundsException

Ошибка:

89
Как закрепить flex элемент справа сверху?

Как закрепить flex элемент справа сверху?

В флекс каталоге есть меню и товары, как закрепить меню в правом верхнем углу так, чтобы товары обтекали его слева и снизу? https://jsfiddlenet/4roj2ced/

162