0

在我的“ArticleActivity”(用户阅读文章的地方)中,我有一个“相关文章”列表。当用户点击一篇文章时,它应该重新加载或刷新 ArticleActivity 以显示他们点击的文章,而不是他们刚刚阅读的文章。

我在网上找到了很多答案,并尝试了其中的大约 492 个......我可以让它开始一个不同的活动,但我不能让它重新启动当前的活动。

我最近的尝试:

    //RELATED ARTICLE CLICK
    relatedArticleClickListener = new OnClickListener()
    {
        public void onClick(View v) {
            Log.d("MYLOG", "related article clicked " + v.getId());
            Intent myIntent = new Intent(v.getContext(), ArticleActivity.class);
            myIntent.putExtra("id", v.getId());
            startActivity(myIntent);
            finish();
        }   
    };

更新:

可能与具有以下内容的 ArticleActivity 有关:android:launchMode="singleTask"?我需要它,但还需要能够用新文章重新加载活动。

如果我更改ArticleActivity.classMainActivity.class并保留所有其余代码完全相同,它确实会转到 MainActivity。

4

3 回答 3

1

替换这些行

finish();
startActivity(myIntent);

用这些

startActivity(myIntent);
finish();
于 2013-01-11T05:17:08.280 回答
0

阅读您的更新后,进一步了解您的问题。该行为与您的singleTask指定有关。在 下singleTask,如果活动已经存在,则不会重新创建它,而是onNewIntent()调用它的方法来处理新的意图。有关详细信息,请参阅Activity.launchmode

你真的需要singleTask吗?因为删除它也会导致您的问题消失。它还允许您阅读的文章位于后退堆栈中,因此当您的用户完成一篇文章并按下后退键时,它将带他们回到第一篇文章。

于 2013-01-11T05:31:38.453 回答
0

您应该使用 Intent Flag 这将对您有所帮助,

参考这个链接

http://developer.android.com/reference/android/content/Intent.html

http://blog.akquinet.de/2010/04/15/android-activites-and-tasks-series-intent-flags/

Android中FLAG_ACTIVITY_SINGLE_TOP的含义

于 2013-01-11T05:19:20.937 回答