Android - 关闭第一项活动

时间:2015-08-19 20:34:21

标签: java android android-activity

我创建了一个Android应用程序,它有两个活动,其中一个是MainActivity,另一个是Article活动

在此应用程序中,您可以打开无限数量的活动。所以它就像一个文章应用程序,在文章中还有其他文章,所以你可以跟随无限数量的文章。每篇文章都会打开一个新的Article活动。

现在我要做的是:当第10个Article打开时,我想要关闭第一个Article活动(不是MainActivity)。

我也读过这个question,但它只有在你有不同的活动时才有效(即ActivityA,ActivityB,ActivityC ......)。

我有什么方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

打开第10篇文章时,请执行以下操作:

Intent intent = new Intent(this,Your_Article.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

或者如果您只想关闭特定活动,请获取该活动的实例并使用finish()关闭它。

答案 1 :(得分:0)

这只是为了让它正常工作,但你可能想尝试从你的描述片段;

  1. 创建一个名为ActivityHandler.java的新类

    public class ActivityHandler { 
    private static ActivityHandler uniqueInstance;
    private static List<Activity> mListActivity;
    private static int SIZE_LIMIT = 10;
    
    public static ActivityHandler getInstance() {
        if (uniqueInstance == null) {
            synchronized (ActivityHandler.class) {
                if (uniqueInstance == null) {
                    uniqueInstance = new ActivityHandler();
                }
            }
        }
        return uniqueInstance;
    }
    
    
    
    private Activityhandler() {
        if (mListActivity == null ) {
            mListActivity = new ArrayList();
        }
    }
    
    
    public static void add (Activity activity){
        mListActivity.add(activity);        
        if (mListActivity.size() > 10){
            Activity firstActivity = mListActivity.remove(0);
            firstActivity.finish();         
        }
    }   
    }
    
  2. 在ArticleActivity的OnCreateMethod:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.article_activity);
        ActivityHandler.getInstance().add(this);
    
    
    }