Mam klasę, która rozszerza BroadcastReceiver
. Po odebraniu wiadomości SMS chciałbym przekazać informacje do mojej głównej klasy aktywności, aby wyświetlić tekst w polu (Dołącz, jeśli już jest obecny tekst).Wysyłanie zamiaru z klasy BroadcastReceiver do aktualnie działającej działalności
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
Intent i = new Intent(context, MainActivity.class);
i.putExtra("updatedString","Hello");
context.startActivity(i);
}
}
MainActivity.java
public class MainActivity extends Activity{
private TextView results;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle extras = getIntent().getExtras();
if(extras!=null){
results = (TextView) findViewById(R.id.results);
results.setVisibility(View.VISIBLE);
results.append(extras.getString("updatedString"));
}
}
mam tylko jedną klasę działalności (MainActivity.java
). Jednak gdy to zrobię, otrzymuję wyjątek Nie można wstrzymać aktywności.
Jak wysłać wiadomość z klasy SmsReceiver.Napisałem następujący kod: Intent i = new Intent ("SMS_RECIEVED"); i.putExtra ("updatedString", str); LocalBroadcastManager mgr = LocalBroadcastManager.getInstance (kontekst); mgr.sendBroadcast (i); – user1692342
w jaki sposób chcesz użyć? 1 lub 2 lub 3? – MHP
Próbuję metody 1 – user1692342