Мое приложение останавливается, когда я пытаюсь что-то сохранить в базу данных MongoDB из mlab - PullRequest
0 голосов
/ 19 декабря 2018

Мое приложение останавливается, когда я пытаюсь что-то сохранить в моей базе данных 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.Некоторые поля должны быть заполнены на следующих шагах, но мое приложение не перейдет к следующему шагу, поэтому я просто дал им некоторые значения.

...