Это функция, которая получает объект в MyHttpsClient.java.
public static MyHttpsClient getClient(Context context, OnHttpsResult resultListener) throws Exception {
Log.i("TAG","---------------------------" + context.getClass().getName() + " getClient!--------------------------------");
for(String c : contextNames){
if(c == context.getClass().getName()){
throw new Exception("Can not be initialized twice in the same class");
}
}
contextNames.add(context.getClass().getName());
return new MyHttpsClient(context, resultListener);
}
Я инициализирую его в Login.kt так:
object MyHttpsListener : MyHttpsClient.OnHttpsResult{
override fun OnResult(jsonObject: JSONObject?) {
when(workid){
0 -> {
var status = jsonObject?.getInt("status")
if(status == 1){
instance.startActivity(Intent(instance, MainActivity::class.java))
}
else{
Toast.makeText(instance, "Incorrect email or password!", Toast.LENGTH_LONG).show()
}
instance.pb_login.visibility = View.GONE
}
}
}
}
var client = MyHttpsClient.getClient(this, MyHttpsListener)
После запуска приложения я нашелчто «клиент» дважды вызывал «getClient ()», поэтому приложение зависало.Наконец, я решил проблему следующим образом:
lateinit var client: MyHttpsClient
И «клиент» инициализирован в onCreate
override fun onCreate(savedInstanceState: Bundle?) {
...
client = MyHttpsClient.getClient(this, MyHttpsListener)
...
}
Но я не знаю, почему это произошло.Я с нетерпением жду того, кто сможет мне помочь.