У меня есть это условие, чтобы написать вызов сервера, который выполняется каждые 50 мс. Звонок сервера должен быть от волейбола. Но трудность, с которой я сталкиваюсь, - это каждый вызов сервера, имеет разные URL-адреса и как передавать эти разные URL-адреса в потоке, чтобы вызвать сервер каждые 50 мс.?Выполнение различных операций в Thread-android
0
A
ответ
0
Я не специалист по Android, но это то, о чем я мог думать, если вы хотите назвать разные URL-адреса после 50 мс. Пожалуйста, исправьте меня, если я ошибаюсь :)
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class MainActivity extends AppCompatActivity {
private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
int i=0;
final String[] urlArray = new String[]{"http://google.com","http://fb.com"};//your url array here
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Runnable task = new Runnable() {
public void run() {
String currentURL= MainActivity.this.getNextURL();
new HitWebService().execute(currentURL);
}
};
worker.schedule(task, 50, TimeUnit.SECONDS);
}
private String getNextURL(){
String currentURL= urlArray[i];
if(i == urlArray.length){
i=0;
}
else{
i++;
}
return currentURL;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private class HitWebService extends AsyncTask<String,Void,String> {
protected void onPreExecute(){
//do whatever you want with respect to ui
}
@Override
protected String doInBackground(String... params){
HttpURLConnection connection=null;
String stringUrl= params[0];
try {
URL url= new URL(stringUrl);
connection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
DataOutputStream outputStream=new DataOutputStream(connection.getOutputStream());
String parameters = "initialise your parameters here, pass parameters also in params and access it like params[1]";
outputStream.writeBytes(parameters);
outputStream.flush();
outputStream.close();
InputStream inputStream=connection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
StringBuffer response = new StringBuffer();
String line;
while((line=bufferedReader.readLine())!=null){
response.append(line);
}
bufferedReader.close();
return response.toString();
}
catch (MalformedURLException malformedException){
return malformedException.toString();
}
catch (IOException ioException){
return ioException.toString();
}
finally {
if(connection !=null){
connection.disconnect();
}
}
}
@Override
protected void onPostExecute(String response){
//do whatever you want here
}
}
}
+0
Это не совсем то, что я искал, но это дало мне направление для того, что делать. Благодарю. @ sandeep-bhandari – guerrero
+0
всегда приветствую сэр :) С удовольствием могу помочь :) –
Смежные вопросы
- 1. Выполнение операций
- 2. Выполнение операций в Pivot
- 3. потоки в ACE для выполнения различных операций
- 4. Выполнение различных операций на основе индекса модуля элементов списка
- 5. Выполнение графиков операций hadoop
- 6. Выполнение асинхронных операций
- 7. Задержка Выполнение ряда операций
- 8. Выполнение операций внутри группы
- 9. Выполнение 2 операций асинхронно
- 10. Выполнение синхронных операций
- 11. Выполнение асинхронных операций обработки
- 12. Выполнение параллельных операций в R
- 13. Выполнение операций в строчном формате
- 14. Выполнение операций в определенные периоды?
- 15. Выполнение последовательных операций в node.js
- 16. Выполнение нескольких операций в JDBC
- 17. Выполнение независимых операций в C#
- 18. Выполнение логических операций в vba
- 19. Выполнение одновременных операций в Mailcore2
- 20. Использование сервиса для различных операций
- 21. Различных кнопок в целях выполнения различных операций в MVC
- 22. Каковы преимущества различных операций объединения в sql
- 23. Выполнение операций RDD на DataFrames
- 24. Выполнение операций перед загрузкой таблицы,
- 25. Выполнение операций при закрытии NodeJS
- 26. Выполнение математических операций на kFirebaseServerValueTimestamp
- 27. Выполняет выполнение функции «Очередь операций»?
- 28. MVVM pattern - выполнение операций просмотра
- 29. Выполнение операций с классами Python
- 30. Выполнение операций с элементами модели
У вас есть список серверов, которые вы должны вызывать последовательно, по одному каждые 50 мс, или вы должны называть их каждые каждые 50 мс? –
Похоже, вы пытаетесь DDOS-кого-то – DDsix
Я работаю над доской, которая будет управляться с мобильных устройств. Таким образом, в соответствии с требованием, эти постоянные вызовы сервера будут выполнены, и эти команды будут отличаться, поскольку пользователь нажимает кнопку на мобильном приложении. @RaduIonescu – guerrero