所以我的应用程序重用了很多活动。最初我只是在活动之间切换时,只是添加一个“fromClass”行作为Intents的额外内容。现在的问题是我需要知道我之前在几个活动中开始的哪个类,以便正确显示当前活动的信息。我试图使用字符串的arraylist来存储顺序,并在我向后退出时将它们从列表中删除,但是我无法将字符串转换为类名并正常工作。
在活动开始时,我正在添加以下方式:
Global.appNavigation.add("SecondActivity.class")
当我调用onBackPressed()时,我正在这样做:
/* Remove Last Object (this class) */
Globals.appNavigation
.remove(Globals.appNavigation.size() - 1);
try {
Class<?> c = Class.forName(Globals.applicationNavigation
.get(Globals.appNavigation.size() - 1));
Activity obj = (Activity) c.newInstance();
Intent i = new Intent(mActivity, c);
startActivity(i);
finish();
} catch (ClassNotFoundException e) {
Log.e("Back", "Could not get a class name");
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我经常收到ClassNotFoundException。有一个更好的方法吗?我正在使用的这个应用程序变得非常大,所以在这种情况下,不调用活动的finish()可能不起作用。
答案 0 :(得分:0)
我最终调用了“finish()”方法,但在跟踪需要持久化的数据方面做得更好。
感谢Ben Von Handorf提出的建议(见原始问题的评论1和3)