在Android Activity和Java Class之间进行通信

时间:2014-08-07 15:34:11

标签: java android interface global-variables

我必须在Android Activity和另一个Java类之间进行通信。在我想要的非常非常简化的版本中,我想要运行Java类,并且在完成后,设置一些信息。为了更清楚地了解我想要发生的事情:

Activity {

CallJavaClass(); // Doesn't return anything, would be very bad form
GetInfoFromJavaClass() // Once the JavaClass has finished what needs to be done

}

我能做什么:

  1. 在我的Activity可以访问的JavaClass中设置一个全局变量。我不想这样做,因为我必须在JavaClass中的该对象上实现某种OnChangedListener。

  2. 使用与Setter / Getters的接口。这个问题是我的JavaClass是一个Singleton,它的大部分方法都是静态的,这在使用接口时是不行的。

  3. 创建一个处理这些变量的单独类。我宁愿保持简单,也不必使用一堆不同的类来做到这一点。

  4. 那么您认为最佳解决方案是什么?如果需要(也可能会),我可以提供更多关于我想要做什么的信息。感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

听起来像是http://developer.android.com/reference/android/os/AsyncTask.html

的AsyncTask

然后再次,这取决于你的目标具体情况

答案 1 :(得分:1)

AsyncTask应解决您的问题:

private class myTask extends AsyncTask<Void, Void, Boolean> {

        protected void onPreExecute() {
        super.onPreExecute();
        // do something before starting the AsyncTask
        }

        @Override
        protected Boolean doInBackground(Void... params) {
            // do what you want to do               

            return false;

        }

        protected void onPostExecute(Boolean success) 
        {
            super.onPostExecute(success);
            // do something right after you finish the "doInBackground"

        }


    }