如何在现有活动之间切换?

时间:2011-09-23 05:12:29

标签: android android-activity stack

我正在设计一款应用程序,它是一种文章阅读器和阅读器。经理和文章有不同的语言版本。

因此,当用户阅读俄语中的特定文章时,会有一个按钮以英文显示相同的文章,反之亦然。

要做到这一点,我开始新的活动。 我现在的情况是,如果用户多次按下同一篇文章的“翻译”按钮,将会有大量重复活动。

我需要实现的是,当用户首先将俄语文章“翻译”为英语时,然后在英文文章中按“翻译”按钮,应用程序将其返回到显示俄语文章的现有活动,并且不会启动新活动。这是一个代码,它没有做我需要说明我的尝试。

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)

1 个答案:

答案 0 :(得分:3)

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

使用上面的标志代替完成前一个标志并启动新标志。所以没有活动堆,没有额外的逻辑。