在我的“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.class
更改为MainActivity.class
并将所有其余代码保持完全相同,则会转到MainActivity。
答案 0 :(得分:1)
替换这些行
finish();
startActivity(myIntent);
与这些
startActivity(myIntent);
finish();
答案 1 :(得分: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/
答案 2 :(得分:0)
阅读更新后,进一步了解您的问题。该行为与您的singleTask
指定有关。在singleTask
下,如果活动已存在,则不会重新创建,而是调用其onNewIntent()
方法来处理新意图。有关详细信息,请参阅Activity.launchmode。
你真的需要singleTask
吗?因为删除它也会导致你的问题消失。它还允许您的阅读文章位于后台堆栈中,因此当您的用户完成一篇文章并按下后退键时,它会将它们带回第一篇文章。