Android - 检查我来自哪个班级

时间:2013-03-23 21:48:22

标签: java android class android-intent

所以我想检查一下我来自哪个班级。例如,我有A,B,C类。现在,在B中有一个打开A类的意图。在C中,有一个打开A类的意图。但是,根据我来自哪个类,我会可能必须为该特定类做一些不同的方法。好的,所以我会给你我的。我有一个Themes.class和一个Soft key.class。两者都会打开一个Bmod.class。现在,几乎两个类都会做同样的事情。唯一的区别是,当我下载文件时,输出流将具有不同的目录。所以,我继续尝试了一些代码。这是我试过的:

                            //Download the file
            Object obj = null;
            InputStream input = new BufferedInputStream(url.openStream());
            OutputStream output = null;
            if(obj instanceof Themes){
            output = new FileOutputStream("/sdcard/plasma/battery/batterymod.zip");
            }if(obj instanceof Softkeys){
            output = new FileOutputStream("/sdcard/plasma/softkeys/softkeys.zip");
            }

现在,当我运行应用程序时,没有任何下载。我假设我做错了,所以应用程序不知道输出流是什么。所以,我的问题就像标题所说:我如何正确地检查一个班级我以前来自哪个班级。感谢。

2 个答案:

答案 0 :(得分:2)

How do I properly check in one class which class I previously came from

我认为您在活动之间进行导航,因此您可以获得此类顶级活动

ActivityManager am = (ActivityManager) context.
    getSystemService(Activity.ACTIVITY_SERVICE);
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
String className = am.getRunningTasks(1).get(0).topActivity.getClassName();

它使用清单

中的权限
<uses-permission android:name="android.permission.GET_TASKS" />

我希望这会对你有所帮助。

答案 1 :(得分:2)

当你调用startActivity(// intent activity A)时,只需输入和添加字符串intent.putExtra(“From”,“classB”//或“classC”)。在A的调用getIntent()。getStringExtra(“From”,“”)的onCreate方法中,取决于你想做什么。