我创建了一个Android应用程序,它有两个活动,其中一个是MainActivity
,另一个是Article
活动
在此应用程序中,您可以打开无限数量的活动。所以它就像一个文章应用程序,在文章中还有其他文章,所以你可以跟随无限数量的文章。每篇文章都会打开一个新的Article
活动。
现在我要做的是:当第10个Article
打开时,我想要关闭第一个Article
活动(不是MainActivity
)。
我也读过这个question,但它只有在你有不同的活动时才有效(即ActivityA,ActivityB,ActivityC ......)。
我有什么方法可以做到这一点吗?
答案 0 :(得分:1)
打开第10篇文章时,请执行以下操作:
Intent intent = new Intent(this,Your_Article.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
或者如果您只想关闭特定活动,请获取该活动的实例并使用finish()关闭它。
答案 1 :(得分:0)
这只是为了让它正常工作,但你可能想尝试从你的描述片段;
创建一个名为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();
}
}
}
在ArticleActivity的OnCreateMethod:
中public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.article_activity);
ActivityHandler.getInstance().add(this);
}