这是我的第一个Android应用,我在runnable类中遇到applicationContext问题。我想用Kotlin(或Java)制作服务器,但是当我尝试这样做时,不能使用applicationContext(当我在“ override fun onCreate”中使用它时,一切正常。这是我的课程:
class ServerReader2 : Runnable {
var ss: ServerSocket? = null
var mySocket: Socket? = null
var dis: DataInputStream? = null
var bufferedReader: BufferedReader? = null
var message: String? = null
var handler = Handler()
override fun run() {
try {
ss = ServerSocket(7800)
handler.post {
//Toast.makeText(getApplicationContext(),"Waiting for client", Toast.LENGTH_SHORT).show();
}
while (true) {
mySocket = ss!!.accept()
dis = DataInputStream(mySocket!!.getInputStream())
message = dis!!.readUTF()
//handler.post { Toast.makeText(applicationContext, "message recived from client: $message", Toast.LENGTH_SHORT).show() }
handler.post { Toast.makeText(applicationContext, "message recived from client: $message", Toast.LENGTH_SHORT).show() }
}
} catch (e: IOException) {
e.printStackTrace()
}
}
}
此类在“重写乐趣onCreate(savedInstanceState:Bundle?)”下,但在我的主类中“ Class RemoteControl:AppCompatActivity()”
我知道,我必须依赖AppCompatActivity的“ ServerReader2”类,但我不知道如何操作(这是我在Kotlin中的第一个Android应用程序)。在此之前,我尝试执行相同的操作,但在Java中的单独文件中却遇到了相同的问题。
为了访问父类的私有成员,请inner
为您的类使用关键字。
在这种情况下,您应该编写inner class ServerReader2 : Runnable
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句