如何从另一个班级获得课堂价值

时间:2016-05-30 17:50:18

标签: java android swing android-studio

Original code is here NotificationUtils.java

我想从activeroom.java获取roomid方法的值。我想我可以使用getClass()。getMethod()。 ?
所以,这段代码在NotficationUtils.java中,并尝试从ActivityRooms.java中获取字符串值“isRoomId”

    public static boolean isAppIsInBackground(Context context,String chatRoomId) {
            boolean isInBackground = true;
            ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) {
                List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
                for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
                    if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                        for (String activeProcess : processInfo.pkgList) {
                            if (activeProcess.equals(context.getPackageName())) {

在if()旁边,我正在定义m方法,我想从“活动类”中获取值“isRoomId”方法。

                              try {
                                    Method m = activeProcess.getClass().getMethod("isRoomId",null);

                                    if (chatRoomId.equals(m.toString()))
                                    {
                                        isInBackground = false;

                                    }
                                } catch (NoSuchMethodException e) {
                                    e.printStackTrace();
                                }

ActivityRoom.java有isRoomId方法。

 public static String chatRoomId;
   chatRoomId = intent.getStringExtra("chat_room_id");

        public static String isRoomId()
                {

                    return chatRoomId;
                }

1 个答案:

答案 0 :(得分:1)

isRoomId()

ActiveRoom方法不是静态方法。因此,您需要实例化该类,然后调用该对象的方法。

如果isRoomId返回的值与类ActiveRoom的对象状态无关,那么您可以将其设置为如下所示的静态方法。然后,您可以从NotficationUtils.java

调用此方法

方法

public static String isRoomId()
{
    String chatRoomId="6";        
    return chatRoomId;
}

Invokation

ActiveRoom.isRoomId()

如果您打算在isRoomId()中编写的逻辑依赖于对象状态,那么您需要在NotificationUtil类中获取相关的对象引用并在该对象上调用该方法。