У меня есть эта проблема, когда я передаю данные из одной активности через широковещательную передачу во вторую активность, и когда я впервые ввожу текст, все идет отлично, но когда я возвращаюсь и вхожу другой текст, а затем последний текст остается неизменным. Я помещал тосты здесь и там, и кажется, что Broadcastreceiver не может изменить это значение String.BroadcastRecevier не хочет изменять значение
MainActivity:
public void setCall(int timeToCall){
if (alarmManager!= null) {
alarmManager.cancel(pendingIntent);
}
String name = e1.getEditableText().toString();
//Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, ThisBroadcastReceiver.class);
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.putExtra("name",name);
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + timeToCall, pendingIntent);
}
BroadcastReceiver:
@Override
public void onReceive(Context context, Intent intent) {
String name = intent.getExtras().getString("name");
Intent i = new Intent(context, CallScreen.class);
i.setClassName("(package)", "(classname)");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("name2", name);
context.startActivity(i);
Toast.makeText(context, name, Toast.LENGTH_SHORT).show();
}
Вторая активность:
public class CallScreen extends Activity {
TextView incomingCall, caller;
MediaPlayer mp;
String name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_call_screen);
Bundle extras = getIntent().getExtras();
if (extras != null) {
name = extras.getString("name2");
}
incomingCall = (TextView) findViewById(R.id.textIncomingView);
caller = (TextView) findViewById(R.id.callerId);
caller.setText(name);
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mp = MediaPlayer.create(getApplicationContext(), notification);
mp.start();
}
@Override
protected void onPause() {
super.onPause();
if (mp != null) {
mp.release();
mp = null;
}
finish();
}
@Override
protected void onStop() {
super.onStop();
if (mp != null) {
mp.release();
mp = null;
}
finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mp != null) {
mp.release();
mp = null;
}
finish();
}
О да, это сработало как шарм! Спасибо Спасибо спасибо! –
добро пожаловать =) – user3390963