我需要重复将数据发布到 php 并取回它们,但使应用程序仍然可响应。我的代码可以工作,但一段时间后(大约 1 分钟)我的应用程序停止响应。
起初,我尝试将 POST() 函数添加到 onResponse() 函数(onRespose 调用 POST 函数,一次又一次地发出新请求),但这冻结了我的应用程序,所以我添加了每 1 毫秒调用一次函数的计时器
.
.
.
编辑后,我的应用程序与以前一样工作(仅在连接到电脑时才有效),如果我打开应用程序并且我的手机未连接到电脑,应用程序会在 1 分钟后崩溃,所以我仍然遇到与开始时相同的问题。如果有人发现错误请告诉我哪里。。
.
.
我编辑的代码:
.
MainActivity.java
public class MainActivity extends AppCompatActivity implements Sync.CallBack {
final String URL = "***";
final String KEY = "***";
Data data;
RequestQueue requestQueue;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = new Data();
data.key = KEY;
data.pressed = "0";
textView = findViewById(R.id.status);
requestQueue = Volley.newRequestQueue(this);
StartSync();
}
public void btnClick(View view) {
data.pressed = "1";
}
@Override
public void onCallBack(String data) {
textView.setText(data);
}
public void StartSync(){
Sync thread = new Sync(this,data,this);
thread.start();
}
}
Sync.java
public class Sync extends Thread{
private Context context;
boolean wait = false;
final String URL = "***";
public CallBack listener;
RequestQueue requestQueue;
public Data data;
public interface CallBack{
void onCallBack(String data);
}
public Sync(CallBack listener,Data data,Context context){
this.listener = listener;
this.data = data;
this.context = context;
requestQueue = Volley.newRequestQueue(context);
};
@Override
public void run() {
while(true){
wait = true;
POST();
while(wait){}
}
}
RISEBY
相关分类