サーバー上のWebサービスへのURLリンクを呼び出して、ユーザーデータをデータベースに挿入しようとしています:例:これはリンクです:
http://mydomain.com/AndroidWebService.asmx/nInsertInfo?id=12&lat=23.2222&log=12322
したがって、この URL を非表示モードで呼び出したいと思います。
サーバー上のWebサービスへのURLリンクを呼び出して、ユーザーデータをデータベースに挿入しようとしています:例:これはリンクです:
http://mydomain.com/AndroidWebService.asmx/nInsertInfo?id=12&lat=23.2222&log=12322
したがって、この URL を非表示モードで呼び出したいと思います。
貴重なソリューションをありがとうございました。
私はWebViewを作成することによってそれをしました
WebView myWebView = (WebView) findViewById(R.id.view1);
myWebView.loadUrl(urll);
次に、WebViewを必要に応じて管理できます。非表示にしたり、エラーとしての配置や結果が返されたりします。
多分この例はあなたを助けるでしょう:
public class URLConnectionTask <Result> extends AsyncTask<URL, Void, InputStream> {
@Override
protected InputStream doInBackground(URL... params) {
InputStream is;
HttpUriRequest request;
URI uri;
HttpResponse response;
if (params.length == 0)
return null;
is = null;CredentialsProvider credProvider = new BasicCredentialsProvider();
if (userName != null && userName.length() > 0 && password != null && password.length() > 0)
credProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
new UsernamePasswordCredentials(userName, password));
//
DefaultHttpClient http = new DefaultHttpClient();
http.setCredentialsProvider(credProvider);
//
uri = URI.create(params[0].toString());
if (isPost)
request = new HttpPost(uri);
else
request = new HttpGet(uri);
try {
response = http.execute(request);
is = response.getEntity().getContent();
//Log.d(TAG, "doInBackground() response: "+EntityUtils.toString(response.getEntity()));
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (processingHandler != null && is != null)
processingResult = processingHandler.processResponse(is);// processingHandler is an instance which implements ProcessingHandler interface (ex. VizMarket). processResponse() is implemented on this class.
return is;
}
@Override
protected void onPostExecute (InputStream result) {
input = result;
if (result == null)
return;
//instruction for inserting data on db ....
try {
result.close();
} catch (IOException e) {
}
}
}
AsyncTaskでURLを呼び出す必要があります。例:AsyncTaskクラスからデータを返す
スレッドを使用してサーバーからデータを取得し、DB に挿入するか、AsyncTask を使用できる Android に挿入する必要があります。
:ClickableSpan を検索して、挿入コードを OnClick 本文に挿入できます~ のように:
String yourTextStr;
SpannableString sp = new SpannableString(yourTextStr);
int start;//the start of your url in the text;
int end ;//the end of your url in the text;
sp.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
//Your Insert Code
}
}, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);