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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es passiert ist, weil Android-system zerstört, die Ihre Tätigkeit Instanz. Sehen Speichern und wiederherstellen der Aktivität Zustand Abschnitt in activity lifecycle Dokumentation:
Um zu verhindern, dass dieser Absturz müssen Sie speichern und wiederherstellen der Instanz Staat in diesem Verfahren:
InformationsquelleAutor g4s8