Мое приложение останавливается, когда я пытаюсь что-то сохранить в моей базе данных mongoDB, размещенной на mlab.Странно то, что он останавливается без ошибок, просто завершается и возвращает меня на главный экран.
Я создал класс (только с сеттерами и геттерами) для создания объектов, которые позже будут сохранены в моембаза данных. Эти объекты создаются и сохраняются с экрана, на котором пользователь может вводить свои данные.
//performing network call in background thread.
final class MongoLabSaveOrder extends AsyncTask<Object, Void, Boolean> {
@SuppressLint("LongLogTag")
@Override
protected Boolean doInBackground(Object... params) {
Myorders order = (Myorders) params[0];
Log.d("order", ""+order);
try {
SupportData sd = new SupportData();
URL url = new URL(sd.buildOrdersSaveURL());
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("PUT");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type",
"application/json");
connection.setRequestProperty("Accept", "application/json");
OutputStreamWriter osw = new OutputStreamWriter(
connection.getOutputStream());
osw.write(sd.createContact(order));
osw.flush();
osw.close();
if(connection.getResponseCode() <205)
{
return true;
}
else
{
return false;
}
} catch (Exception e) {
e.getMessage();
Log.d("Got error", e.getMessage());
return false;
}
}
}
//the code from the onCreate() method
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calclay1);
Log.d(TAG, "onCreate: Starting.");
if (android.os.Build.VERSION.SDK_INT > 9)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
Button btnNext2 = (Button) findViewById(R.id.NextBtn);
btnNext2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "onClick: pressed button to go on page 3");
Myorders order=new Myorders();
EditText expedStreet=(EditText) findViewById(R.id.expedTextView);
EditText destStreet=(EditText) findViewById(R.id.destTextView);
Spinner sizespinner=(Spinner) findViewById(R.id.sizespin);
Spinner weightspinner=(Spinner) findViewById(R.id.weightspin);
RadioButton Express=(RadioButton) findViewById(R.id.radioButton3);
RadioButton Normal=(RadioButton)findViewById(R.id.radioButton4);
CheckBox Fragile=(CheckBox)findViewById(R.id.FragileCheck);
order.setSender_street(expedStreet.getText().toString());
order.setDest_street(destStreet.getText().toString());
order.setSizeP(sizespinner.getSelectedItem().toString());
order.setWeightP(weightspinner.getSelectedItem().toString());
if(Express.isChecked()) order.setExpr_Norm("Express");
else order.setExpr_Norm("Normal");
if(Fragile.isChecked()) order.setFragile("Yes");
else order.setFragile("Not");
//.........................
order.setSender_name("rares");
order.setDest_name("taciu");
order.setPhone_number("0899765568");
order.setEmail("taciu@gggg");
order.setDateP("2019");
order.setHour_P("09:29");
order.setSpecifications("delivered package");
MongoLabSaveOrder tsk=new MongoLabSaveOrder();
tsk.execute(order);
Toast.makeText(SecondScreen.this, "Saved to MongoDB!!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(SecondScreen.this, ThirdScreen.class);
startActivity(intent);
При нажатии этой кнопки nxt должны считываться все входные данные из счетчиков, поля EditText и т. д. и создаваться объект на основена них. и значения объекта должны быть сохранены в моей базе данных, на mlab.Некоторые поля должны быть заполнены на следующих шагах, но мое приложение не перейдет к следующему шагу, поэтому я просто дал им некоторые значения.