1

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

                            //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");
            }

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

4

2 回答 2

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" />

我希望这能帮到您。

于 2013-03-23T21:54:48.970 回答
2

当您调用 startActivity(//intent 活动 A) 时,只需放入额外的字符串 intent.putExtra("From", "classB" // 或 "classC")。在 A 的 onCreate 方法中调用 getIntent().getStringExtra("From", "") 并取决于你得到什么做任何你想做的事。

于 2013-03-23T21:58:42.787 回答