首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AsyncTask内部的Intent putExtra(String,String)

AsyncTask内部的Intent putExtra(String,String)
EN

Stack Overflow用户
提问于 2012-06-08 01:34:53
回答 3查看 950关注 0票数 0

我只是简单地尝试将一个字符串带到下一个活动中,而不必为任务定义整个对象。我已经看到了类似的解决方案,并让它们工作,但没有使用AsyncTask来创建意图。

代码语言:javascript
复制
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);

正如putExtra()方法所要求的那样,PASSED_USERNAME是一个用于保存包名的公共静态常量。然后,我尝试在下一个活动中提取该值。

代码语言:javascript
复制
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);

永远不会拉出字符串,username的值始终为空。我浏览了调试器,发现Eclipse IDE调试器在活动之间显示不同的意图ID,它们永远不会一致。有没有可能是因为AsyncTask被分成了一个独立的线程,所以它受到了某种干扰?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-09 01:52:19

我不知道这是否适用于您的问题,因为我无法从您的代码片段中看到中介活动是否是新创建的。

getIntent()-method总是返回启动活动的第一个意图。如果活动保持在后台并接收到新的意图,则该值不会自动更新。你必须覆盖onNewIntent(...)并手动调用setIntent(...)才能正常工作(或者直接在那里做所有的事情)。

因此,如果您没有在onCreate()方法中运行您发布的代码,请检查您是否没有错过获取您感兴趣的真正意图的情况。

票数 0
EN

Stack Overflow用户

发布于 2012-06-08 02:03:16

不确定您的解决方案的确切答案。您在UI上调用startActivity,因为它在postExecute()中。

如果所有其他方法都失败了,您只需将该值保存到一个共享首选项即可。

票数 0
EN

Stack Overflow用户

发布于 2012-06-08 02:05:39

您处理变量PASSED_USERNAME的方式似乎不正确。您在一些宫殿中将其用作简单的PASSED_USERNAME,而在另一些地方,您将其与名为前缀UniteActivity.PASSED_USERNAME的类一起使用。因为它是一个公共静态常量,所以总是使用它作为类名的前缀。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10936896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档