Android start activity nach langer Zeit minimieren

Nachdem der Benutzer geht auf andere Anwendung wird meine Anwendung nicht geschlossen wird, (als general, es minimiert ist), aber nach einiger Zeit, wenn ich die Anwendung öffnen, es stürzt ab, weil NullPointerException.Das ist, weil android-reinigt Speicher und einige Variablen sind nicht mehr zugänglich. Gibt es eine Möglichkeit, um festzustellen, ob android gelöscht, Speicher meiner app ? Oder was ist eine gute Lösung gegen dieses Problem

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_payment);
    Bundle bundle = getIntent().getExtras();
    personId = bundle.getInt("personId");
    personName = bundle.getString("personName");

    lendStr = getResources().getString(R.string.lend);
    borrowStr = getResources().getString(R.string.borrow);


    setUpViews();
}


private void setUpViews() {
    SqlHelper db = new SqlHelper(this);
    Helper.centerActionBarTitle(this, db.getPerson(personId).getName(), false);
    tf = Typeface.createFromAsset(getAssets(), "FLEXO.TTF");
    tfFlexo = Typeface.createFromAsset(getAssets(), "FLEXO_BOLD.TTF");

    iv_add_row = (ImageView) findViewById(R.id.iv_add_row);
    iv_remove_row = (ImageView) findViewById(R.id.iv_remove_row);
    et_amount = (EditText) findViewById(R.id.et_amount);
    et_item_name = (EditText) findViewById(R.id.et_item_name);
    et_quantity = (EditText) findViewById(R.id.et_quantity);
    et_price = (EditText) findViewById(R.id.et_price);
    et_total_price = (TextView) findViewById(R.id.et_total_price);
    tv_currency = (TextView) findViewById(R.id.tv_currency);



    et_item_name.setText(getResources().getString(R.string.item));
    et_quantity.setText(getResources().getString(R.string.qty));
    et_price.setText(getResources().getString(R.string.price));
    et_total_price.setText(getResources().getString(R.string.total));

    tv_break = (TextView) findViewById(R.id.tv_break);
    tv_payment_date = (TextView) findViewById(R.id.tv_payment_date);
    tv_p_date = (TextView) findViewById(R.id.tv_p_date);
    tv_p_time = (TextView) findViewById(R.id.tv_p_time2);
    tv_maturity = (TextView) findViewById(R.id.tv_maturity);
    tv_m_time = (TextView) findViewById(R.id.tv_m_time);
    tv_m_date = (TextView) findViewById(R.id.tv_m_date);

    ll_list_wrapper = (LinearLayout) findViewById(R.id.ll_list_wrapper);

    tv_operation_type = (TextView) findViewById(R.id.tv_operation_type);
    chk_break_items = (ImageView) findViewById(R.id.chk_break_items);

    et_item_name.setTypeface(tfFlexo);
    et_quantity.setTypeface(tfFlexo);
    et_price.setTypeface(tfFlexo);
    et_total_price.setTypeface(tfFlexo);
    tv_operation_type.setTypeface(tf);
    tv_currency.setTypeface(tf);
    tv_break.setTypeface(tf);
    tv_payment_date.setTypeface(tf);
    tv_p_date.setTypeface(tf);
    tv_p_time.setTypeface(tf);
    tv_maturity.setTypeface(tf);
    tv_m_time.setTypeface(tf);
    tv_m_date.setTypeface(tf);

    int currencyIndex = MainActivity.settings.getCurrency();
    tv_currency.setText(Constants.currencies[currencyIndex]);
}

Logcat Ausgabe:

java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.lionshare.aldkan/com.lionshare.aldkan.AddPayment}:
java.lang.NullPointerException
    bei
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355)

    bei
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)

    bei
android.app.ActivityThread.Zugriff auf$600(ActivityThread.java:151)

    bei
android.app.ActivityThread$H. handleMessage(ActivityThread.java:1335)

    bei
android.os.Handler.dispatchMessage(Handler.java:99)

    bei
android.os.Looper.Loops(Looper.java:155)

    bei
android.app.ActivityThread.main(ActivityThread.java:5511)

    bei
java.lang.reflektieren.Methode.invokeNative(Native-Methode)

    bei
java.lang.reflektieren.Methode.invoke(Method.java:511)

    bei
com.android.intern.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)

    bei
com.android.intern.os.ZygoteInit.main(ZygoteInit.java:796)

    bei dalvik.system.NativeStart.main(Native
Methode)
Verursacht durch: java.lang.NullPointerException

    bei
com.lionshare.aldkan.AddPayment.setUpViews(AddPayment.java:188)

    bei
com.lionshare.aldkan.AddPayment.onCreate(AddPayment.java:114)

    bei
android.app.Aktivität.performCreate(Aktivität.java:5066)

    bei
android.app.Instrumentierung.callActivityOnCreate(Instrumentation.java:1101)

    bei
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)

    ... 11 mehr

Actyually, bei com.lionshare.aldkan.AddPayment.setUpViews(AddPayment.java:188) ist

MainActivity.settings.getCurrency()

Kann es nicht finden statische variable settings von MainActivity. Ich denke, dass die variable aus dem Speicher gelöscht.

veröffentlichen Sie Ihre relevanten code
auch Ihre logcat zeigt, die Ausnahme.
Sie sollten den Beitrag, den Sie relevanten code und logcat. Trotzdem, auch dies Lesen: developer.android.com/training/basics/activity-lifecycle/...
dies könnte helfen, stackoverflow.com/questions/15964411/...
überprüfen Sie limit background processes option in developer options Folgen Sie diesem link android.stackexchange.com/a/62393/64628

InformationsquelleAutor Misha Akopov | 2014-10-02

Schreibe einen Kommentar