У меня есть активность настроек с текстовым предпочтением, который сохраняет в общих настройках строку, которая является IP-адресом, тогда у меня есть приемник широковещания, где AsyncTask делает вызов сервис. Я хотел бы сделать настраиваемый адрес URL, но когда я делаю вызов, не принимается текущее значение ip-адреса, но когда я перезапускаю свое приложение, вы получаете правильное значение. Как я могу решить эту проблему. Я вставляю только полезный код. Заранее спасибоBroadcast Receiver не считывает текущее значение в общих предпочтениях
public class Broadcast extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
preferences = PreferenceManager.getDefaultSharedPreferences(context);
new Call().execute();
}
private class Call extends AsyncTask<String, String, String> {
String ip;
@Override
protected String doInBackground(String... params) {
ip = preferences.getString("key","");
String result = RestFullConnection.postCall("http://" + ip + ":8080/app/api/bla/sync", params[0]);
return result;
}
}
+++ +++ редактировать я называю вещать в MainActivity и я сохранить значение в СП с помощью EditTextPreference:
Intent alarmIntent = new Intent(getApplicationContext(), Broadcast.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis() + 5000, 30 * 1000, pendingIntent);
Где и когда транслируется вещание? И опубликуйте код, в котором вы сохраните ip. –
Я редактирую свой вопрос. – mike5v