我正在设计一款应用程序,它是一种文章阅读器和阅读器。经理和文章有不同的语言版本。
因此,当用户阅读俄语中的特定文章时,会有一个按钮以英文显示相同的文章,反之亦然。
要做到这一点,我开始新的活动。 我现在的情况是,如果用户多次按下同一篇文章的“翻译”按钮,将会有大量重复活动。
我需要实现的是,当用户首先将俄语文章“翻译”为英语时,然后在英文文章中按“翻译”按钮,应用程序将其返回到显示俄语文章的现有活动,并且不会启动新活动。这是一个代码,它没有做我需要说明我的尝试。
intent.putExtra("BookID", strBookID );
intent.putExtra("ChapterNum", mCurrChapterNum );
intent.putExtra("TextNum", mCurrTextNum );
try{
if (Central.LastBookID.equals(""))
{ //remember current article id
Central.LastBookID=strBookID;
Central.LastChapter=mCurrChapterNum;
Central.LastText=mCurrTextNum;
}
else
{
if (Central.LastChapter.equals(mCurrChapterNum) &&
Central.LastText.equals(mCurrTextNum) )
intent.addFlags(Intent. FLAG_ACTIVITY_REORDER_TO_FRONT);
}
startActivity(intent);
请给我一些建议,也许以不同的方式实施它会更好? 从我设法阅读,Android没有任何“活动ID”,所以如果我在堆栈中有2个相同类“A”的活动,但有不同的参数,如(A1 A2),我可以告诉系统带来前面的活动A1并制作它(A2 A1)
答案 0 :(得分:3)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
使用上面的标志代替完成前一个标志并启动新标志。所以没有活动堆,没有额外的逻辑。