我只是想将一个字符串带到下一个活动中,而不必为该任务定义整个对象。我见过类似的解决方案并让它们工作但不使用 AsyncTask 来创建意图。
protected void onPostExecute(Boolean result) {
if (loggedIn && hasPin) {
Intent intent = new Intent(UniteActivity.this,
WebViewActivity.class);
intent.putExtra(PASSED_USERNAME, passUser);
startActivity(intent);
}
if (loggedIn && !hasPin) {
Intent intent = new Intent(UniteActivity.this,
CreatePinActivity.class);
intent.putExtra(PASSED_USERNAME, passUser);
startActivity(intent);
PASSED_USERNAME 是一个公共静态常量,用于保存包名称,就像 putExtra() 方法所需要的一样。然后我尝试在下一个活动中提取价值。
Intent extras = getIntent();
String username = extras.getStringExtra(UniteActivity.PASSED_USERNAME);
// carry username to next activity
Intent intent = new Intent(CreatePinActivity.this,WebViewActivity.class);
intent.putExtra(PASSED_USERNAME, username);
startActivity(intent);
永远没有要拉出的字符串,用户名的值始终为空。我浏览了调试器,发现 Eclipse IDE 调试器在活动之间显示了不同的意图 ID,它们从来都不一致。AsyncTask 是否有可能因为它分裂成一个单独的线程而以某种方式干扰?