【问题标题】:Android - Check which class I came fromAndroid - 检查我来自哪个班级
【发布时间】:2013-03-23 21:48:21
【问题描述】:

所以我想检查我来自另一个班级的哪个班级。例如,我有 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");
            }

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

【问题讨论】:

    标签: java android class android-intent


    【解决方案1】:
    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" />
    

    希望对你有帮助。

    【讨论】:

    • 我会试试的。那么,我会使用类似的东西吗? if(classname != null){ //代码
    • 这也不起作用,除非我做错了。您能否编辑您的帖子,并举例说明如何在我的情况下使用它(用于文件输出流)?
    【解决方案2】:

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

    【讨论】:

    • 我已经这样做了,所以我可以确定要下载哪个文件。我每个班级至少有 50 个附加项,我不想说 if(extra1 != null || extra2 != null || extra3 != null, ect.)
    • 你为什么需要 50 个额外的。如果这些是要下载的文件的名称,那么您可以使用 putStringArrayExtra
    • 对于每个被点击的按钮,我有很多不同的事情发生,而不仅仅是下载。对不起。我应该更清楚。
    猜你喜欢
    • 1970-01-01
    • 2010-10-30
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2020-09-15
    • 2015-09-11
    • 2012-05-08
    相关资源
    最近更新 更多