По сути, моя проблема заключается в том, что мне нужно отправить данные из моей службы (начатой с Intent) в основную деятельность. (это моя первая попытка использования BroadcastReceiver)
У меня есть два приложения: com.example.myapp (содержит основное действие) и com.example.myapp.licence (содержит фоновый сервис)
То, что у меня сейчас есть, выглядит следующим образом:
com.example.myapp> MainActivity:
// Start background service
Intent intent = new Intent();
intent.setClassName("com.example.myapp.licence", "com.example.myapp.licence.LicenceCheck");
startService(intent);
// Setup BroadcastReceiver
private BroadcastReceiver MyBroadcastReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String status = extras.getString("status");
}
};
// Start reciever
IntentFilter filter = new IntentFilter("STATUS_RETURN");
registerReceiver(MyBroadcastReceiver, filter);
com.example.myapp.licence> LicenceCheck:
Intent intentToActivity = new Intent("STATUS_RETURN");
intent.putExtra("status", "verified");
sendBroadcast(intentToActivity);
Может кто-нибудь предложить, что мне нужно изменить, чтобы этот BroadcastReceiver работал?
EDIT :
Отредактировано для исправления опечатки .. проблема все еще существует
РЕДАКТИРОВАТЬ 2 :
Теперь кажется, что BroadcastReciever используется, но есть проблема со следующей строкой (поскольку она принудительно закрывается):
String status = extras.getString("status");
РЕДАКТИРОВАТЬ 3 :
Вышеуказанная проблема решена путем окружения этой строки следующим IF-статусом:
if (extras != null)
но "статисты" всегда бывают нулевыми, кто-нибудь знает почему?