Переключение нескольких страниц в затмении Android

1

Подумайте, я использую пять экранных страниц для проекта "A". Каждая страница переключается между другими страницами последовательно один за другим, мне нужно закрыть все страницы, когда я нажимаю кнопку "exit" со страницы 5, которая последний.

Я использовал этот ниже код, но проблема только в том, что последняя страница приближается, другие нет.

найти мой код ниже

Button extbtn = (Button)findViewById(R.id.but_Exit);
extbtn.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
Intent intent = new Intent();
    setResult(RESULT_OK, intent);
    finish();
}   });

Спасибо за ваше время!

  • 0
    привет @andro prabu почему вы используете setResult (RESULT_OK, намерение); ??? если в вашем примере проекта нет какой-либо специальной работы, используйте «StartActivity (intent); finish ();» после каждого успешного перенаправления страницы. тогда вы не получите эту проблему в простой функции.
Теги:
switching

1 ответ

1
Лучший ответ

Сделайте все пять действий расширением BaseActivity, которое регистрирует BroadcastReceiver на onCreate (и отменяет регистрацию в onDestroy). Когда extbtn, отправьте трансляцию всем этим BaseActivities, чтобы закрыть себя

например, в вашем BaseActivity добавьте:

public static final String ACTION_KILL_COMMAND = "ACTION_KILL_COMMAND";
public static final String ACTION_KILL_DATATYPE = "content://ACTION_KILL_DATATYPE";

private KillReceiver mKillReceiver;

@Override
protected void onCreate(Bundle savedInstanceState)  {
    ...
    ...
    mKillReceiver = new KillReceiver();
    registerReceiver(mKillReceiver, IntentFilter.create(ACTION_KILL_COMMAND, ACTION_KILL_DATATYPE));        
}

@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mKillReceiver);
}

private final class KillReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        finish();
    }
}

и в extbtn onClick call:

extbtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // send a broadcast that will finish activities at the bottom of the stack
        Intent killIntent = new Intent(BaseActivity.ACTION_KILL_COMMAND);
        killIntent.setType(BaseActivity.ACTION_KILL_DATATYPE);
        sendBroadcast(killIntent);

        Intent intent = new Intent();
        setResult(RESULT_OK, intent);
        finish();
    }
});    
  • 0
    Есть ли что упоминать в manifest.xml, если я последую вашему решению?
  • 0
    @androprabu Нет, не нужно ничего писать в манифесте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню