Как получить текущую активность после изменения активности - PullRequest
0 голосов
/ 23 января 2019

Я использую соседние соединения для создания соединения между устройствами.Когда соединение установлено, активность меняется.Теперь, если устройство отключается, вызывается обратный вызов, но он получен в старой активности.Теперь я хочу показать AlertDialog, но диалог никогда не показывается, потому что он показывает на старом действии.Как отобразить диалоговое окно для нового действия?

Я использую близлежащие соединения, например: URL

private Activity mActivity;

public RemoteConnection(Activity activity){
    mActivity = activity;
} 

  // For simplicity I did only include this method
  @Override
  public void onDisconnected(String endpointId) {
    // We've been disconnected from this endpoint. No more data can be
    // sent or received.
    new AlertDialog.Builder(mActivity)
      .setTitle("Disconnection")
      .setMessage("Other device is disconnected")
      .setIcon(android.R.drawable.ic_dialog_alert)
      .show();
  }

В текущем действии должен отображаться диалог

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Используйте реализацию шины событий или отправьте обратный вызов, используя sendBroadcast(), и каждый Activity зарегистрирует BroadcastReceiver в onResume() и отменит его регистрацию в onPause().

0 голосов
/ 23 января 2019

Напишите метод в своей деятельности как:

public void showAlert(activity)
{
    new AlertDialog.Builder(activity)
  .setTitle("Disconnection")
  .setMessage("Other device is disconnected")
  .setIcon(android.R.drawable.ic_dialog_alert)
  .show();
}

и измените следующий код:

@Override
 public void onDisconnected(String endpointId) {
// We've been disconnected from this endpoint. No more data can be
// sent or received.
new AlertDialog.Builder(mActivity)
  .setTitle("Disconnection")
  .setMessage("Other device is disconnected")
  .setIcon(android.R.drawable.ic_dialog_alert)
  .show();

}

Кому:

@Override
 public void onDisconnected(String endpointId) {
// We've been disconnected from this endpoint. No more data can be
// sent or received.
if(((YourActivityA)activity) != null)
{
    ((YourActivityA)activity).showAlert(activity);
}
else if(((YourActivityB)activity) != null)
{
    ((YourActivityB)activity).showAlert(activity);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...