나는 서버에서 색상을 얻을 테마메인 스레드에서 네트워크 연결 -이 경우 대체?
setTheme(colorId);
작동하는 onCreate()
내부와 시작 부분에 설정 될 필요가로 설정해야합니다.
나는이 일을 해요 :
protected void onCreate(Bundle savedInstanceState) {
getColor();
...
}
public void getColor() {
StrictMode.ThreadPolicy tp = StrictMode.ThreadPolicy.LAX; //force network on main thread
StrictMode.setThreadPolicy(tp);
OkHttpClient client = new OkHttpClient();
okhttp3.Request request = new okhttp3.Request.Builder()
.url("http://myip/color.php")
.build();
try {
okhttp3.Response response = client.newCall(request).execute();
String color = response.body().string();
setTheme(color);
} catch (IOException e) {
e.printStackTrace();
}
}
}
을 그래서, doInBackground(), on response...
을 추가하는 경우 때문에 나는 내 onCreate()
및 색상이 설정되지 않습니다 후 실행 주 스레드에서 네트워크 연결을 강요하고있다.
내 질문은 여기입니다 :
1) 유일한 방법입니까?
2) 메인 스레드에서 강제 네트워크없이 작업을 수행 할 수 있습니까?
3) 안드로이드를 처음 사용하고 예제없이 많은 도움이되지 않기 때문에 가능하면 "예, 가능합니다"또는 "할 XYZ"와 같은 예제가 필요합니다.
스플래시 화면을 만들고 스플래시 화면에서 색상을 가져와 주 활동을 시작하십시오. –