Можно ли начать действие ниже того, что уже на вершине стека? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть действие A, я хочу запустить действие B, чтобы загрузить его данные с моего сервера, и когда все данные будут получены, я хочу завершить действие A так, чтобы B стало сверху моего стека и отображалось

Я не могу решить эту проблему, я понятия не имею, как мне этого добиться

Ответы [ 4 ]

0 голосов
/ 27 июня 2019

Вы можете загрузить данные, используя планировщик заданий из Деятельности A, как только данные будут загружены, начните Мероприятие B и передайте данные.

0 голосов
/ 27 июня 2019

В вашей Деятельности A делайте так -

    // 1. create an intent pass class name or intnet action name 
    Intent intent = new Intent(this,AnotherActivity.class);

    // 2. put X, Y in intent
    intent.putExtra("x",  etX.getText().toString());
    intent.putExtra("y",  etY.getText().toString());

    // 3. start the activity
    startActivityForResult(intent, 1);

В вашей Деятельности B делайте так -

public class ActivityB extends Activity implements OnClickListener {

    TextView tvSum;
    Button btnSendResult;
    int result;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_b);

// 1. get passed intent 
    Intent intent = getIntent();

    // 2. get x & y from intent
    int x = Integer.parseInt(intent.getStringExtra("x"));
    int y = Integer.parseInt(intent.getStringExtra("y"));
    result = x + y;

    btnSendResult = (Button) findViewById(R.id.btnSendResult);
    btnSendResult.setOnClickListener(this);
}

Затем снаружи onCreate в действии B -

@Override
    public void onClick(View view) {

         Intent returnIntent = new Intent();
         returnIntent.putExtra("result",result);
         setResult(RESULT_OK,returnIntent);     
         finish();
    }
0 голосов
/ 27 июня 2019

Используйте приемник Broadcast в Activity A и начните слушать трансляцию, когда мы запускаем Activity B. После загрузки данных в Activity B, отправьте трансляцию.После получения трансляции finish() активность A.

0 голосов
/ 27 июня 2019

Вы можете загрузить данные в упражнении A, а когда загрузка будет завершена, запустить упражнение B и передать данные между занятиями, вы увидите, как это сделать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...