CHronometer null bei rotation

  • 2 Antworten
  • Neuester Beitrag
Diskutiere CHronometer null bei rotation im Android App Entwicklung im Bereich Betriebssysteme & Apps.
T

tanzverfuehrung

Neues Mitglied
ist in JAVA!!!
ja also wenn man ein android handy dreht...wird immer wieder die onCreat() methode aufgerufen!und alles wird auf null gesetzt.ich habe gelesen das ich das verhindern kann!
verstehe iich aber nicht ganz...wie ich es speichern kannn
ich habe einen chronometer der automatisch zählt....und immer wieder wenn ein neues GPS signal kommt, springt die uhr auf null zurück und fängt von neuem an zu zählen!(Das ist auch richtig so)
nun aber wenn ich das handy drehe...geht die stopuhr auch immer wieder auf 00:00...(soll NICHT so sein)
habe auch beide methoden (onSaveInstanceState und onRestoreInstanceState) benutzt....
nun frage ich mich aber wieso das alles noch nicht so funktioniert?!
wo genau muss ich die methoden benutzen???
kann mir jemand weiter helfen?


PHP:
    private long lasttimeSend;

@Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putLong("chronometer", lasttimeSend);

        super.onSaveInstanceState(outState);
    }


@Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
       
        Chronometer chronometerView = (Chronometer)    findViewById(R.id.chronometer);
    chronometerView.setBase(savedInstanceState.getLong("chronometer"));

        super.onRestoreInstanceState(savedInstanceState);
    }

ich habe auch gelesen das man es in der MAnifest amchen kann...
<activity android:name=".MyActivity"
android:label="My Activity"
android:screenOrientation="portrait">

...doch dann dreht sich der bildschirm einfach nicht mehr mit wenn ich das handy drehe!aber es wird nichts gespeichert.....
das heißt z.b. wenn ich die tastertur aufschiebe...ändert sich auch die bildschirmperspektive und somit ist alles wieder weg(auf null)


EDIT:
ich habe es jetzt noch anders ausprobiert mit zwei methoden

PHP:
@Override
    protected void onPause() {
        final SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE)
                .edit();
        editor.putLong("time", lasttimeSend);
        editor.commit();
        super.onPause();
    }

    @Override
    protected void onResume() {
        final SharedPreferences prefs = getPreferences(MODE_PRIVATE);
        Chronometer chronometerView = (Chronometer) findViewById(R.id.chronometer);
        chronometerView.setBase(prefs.getLong("chronometer", lasttimeSend));
    }
doch dann funktioniert GARNCIHTS mehr!
also meine app kann dann nach dem installieren garnicht geöffnet werden!WIESOOOOO???

wenn ich die methode onResume() auskommentiere aber onPause nicht auskommentiere....funktioniert meine app wieder....
aber mein problem ist immer noch nicht gelöst.
 
Zuletzt bearbeitet:
N

Neeldarax

Fortgeschrittenes Mitglied
Hallo tanzverfuehrung,

wenn du deine manifest anpasst:
Code:
        <activity android:name="de.alexroid.MeinProjekt"
            android:label="@string/app_name_beta" [B]android:configChanges="orientation"[/B]>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
sollte dann beim drehen, nicht wieder alles neugestartet werden.
So habe ich bei mir das Problem gelöst.

regards
 
T

tanzverfuehrung

Neues Mitglied
Neeldarax schrieb:
Hallo tanzverfuehrung,

wenn du deine manifest anpasst:
Code:
        <activity android:name="de.alexroid.MeinProjekt"
            android:label="@string/app_name_beta" [B]android:configChanges="orientation"[/B]>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
sollte dann beim drehen, nicht wieder alles neugestartet werden.
So habe ich bei mir das Problem gelöst.

regards

ja das hatte ich auch schon...ABER damit kann man ja dann die applikation nicht mehr drehen.(das handy schon aber die applikation dreht sich nicht mehr mit)das soll noch funktionieren.aber die werte sollen nicht zurück gesetzt werden!...