0
私のアプリでは、標準非同期メソッド呼び出しによってOKHttp3
を使用してWebリクエストヘルパークラスを持っています。すべてうまく動作しますが、最初の実行(新しいインストール後)のための私のスプラッシュアクティビティでは、Web要求は機能しません!しかし、私はアプリを閉じて、再びすべてを正常に動作する場合実行します。ここWebリクエストが最初のアプリケーションで動作しない
は私のコールバックインタフェースです。ここ
public interface WebResult<T> {
void onValue(T value);}
は、私はGoogleのボレーとそれの仕事でOKHttp3置き換える方法
public void getStatus(final WebResult result) {
urlBuilder.addQueryParameter("action", "test");
urlBuilder.addQueryParameter("reqbody", cd.toJSON());
String url = urlBuilder.build().toString();
Request request = new Request.Builder()
.header("Authorization", AuthKey)
.url(url)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
setHasError(true);
setMsg(e.getMessage());
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
} else {
iAct.runOnUiThread(new Runnable() {
public void run() {
try {
String s = response.body().string();
ServerStat r = new ServerStat();
r.fromJSON(s);
result.onValue(r);
return;
} catch (IOException e) {
}
}
});
}
}
});
}
とその私のスプラッシュ活動
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
WebHelper wh = new WebHelper(context);
wh.getStatus(new WebResult() {
@Override
public void onValue(Object value) {
ServerStat r = (ServerStat) value;
if (r.getErrorCode() == 0) {
Toast.makeText(context, r.getErrorMsg(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, r.getErrorMsg(), Toast.LENGTH_LONG).show();
}
}
});
}
あなたのコードを共有していいですか? –
ここに私のコードです –
誰かが私を助けることができますか? –