gpt4 book ai didi

android - startActivityForResult 是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 03:22:12 25 4
gpt4 key购买 nike

所以我有两个类(class)。我想做的是将数据从 MainActivity 发送到 Main2,在 Logcat 中登录,然后将控制权返回给 MainActivity 以便用一些其他数据再次重复该步骤。

但我得到了意想不到的结果。我得到的不是 0,1,2,3,4,而是任意随机序列……有时顺序相反。这是为什么??这是因为使用了 for 循环吗??

MainActivity.java

public class MainActivity extends Activity {

int REQUEST_CODE = 0;
Intent i;
int k = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
i = new Intent(this, main2.class);
loop();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
loop();
}
}

public void loop() {
for (int j = k; j < 5; j++, k++) {
i.putExtra("value", j);
startActivityForResult(i, REQUEST_CODE);
}
}
}

Main2.java

public class main2 extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
int i = intent.getIntExtra("value", 0);
Log.d("Value", i + "");
setResult(RESULT_OK);
finish();
}

最佳答案

这是因为,当您调用 startActivityForResult 时,您启动了 Activity,它最终将启动。请注意,不是立即,它们可能需要几毫秒才能启动。此外,Log.d 也不是即时的。多线程编程与单线程编程有很大不同。

关于android - startActivityForResult 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com