Ich habe ein Problem, das mich wirklich verrückt macht. Die Elternaktivität in der Entwicklung, die ich entwickle, wird immer zerstört, sobald eines der Kinder gestartet wird. Dadurch wird die Zurück-Schaltfläche verwendet, da die Anwendung verzögert wird, da die übergeordnete Aktivität erneut erstellt werden muss. Heres Android manifest.xml:Elternaktivität immer beim Start der Kinderaktivität zerstört
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dev.dita.daystarmemo">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<permission
android:name="com.dev.dita.daystarmemo.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.dev.dita.daystarmemo.permission.C2D_MESSAGE" />
<application
android:name=".MemoApp"
android:allowBackup="true"
android:icon="@mipmap/ic_memo_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="io.fabric.ApiKey"
android:value="e76f495714db69684d45e3cb181116b8c21b649e" />
<activity
android:name=".ui.welcome.WelcomeActivity"
android:label="@string/title_activity_welcome"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".ui.main.MainActivity"
android:label="@string/title_activity_main"
android:launchMode="singleTask"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.profile.ProfileActivity"
android:label="@string/title_activity_profile"
android:parentActivityName=".ui.main.MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.main.MainActivity" />
</activity>
<activity
android:name=".ui.memos.MemosChatActivity"
android:label="@string/title_activity_memos_chat"
android:parentActivityName=".ui.memos.MemoGroupActivity"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateHidden|adjustResize">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.memos.MemoGroupActivity" />
</activity>
<activity
android:name=".ui.memos.NewMemoActivity"
android:label="@string/title_activity_new_memo"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysVisible|adjustResize" />
<activity
android:name=".ui.connections.ConnectionsActivity"
android:label="@string/title_activity_connections"
android:launchMode="singleTop"
android:parentActivityName=".ui.main.MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.main.MainActivity" />
</activity>
<activity
android:name=".ui.connections.NewConnectionActivity"
android:label="@string/title_activity_new_connection"
android:parentActivityName=".ui.connections.ConnectionsActivity"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateHidden|adjustResize">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.connections.ConnectionsActivity" />
</activity>
<activity
android:name=".ui.connections.ConnectionDetailsActivity"
android:label="@string/title_activity_connection_details"
android:parentActivityName=".ui.connections.ConnectionsActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.connections.ConnectionsActivity" />
</activity>
<activity
android:name=".ui.settings.SettingsActivity"
android:label="@string/title_activity_settings"
android:parentActivityName=".ui.main.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.main.MainActivity" />
</activity>
<receiver
android:name=".receivers.NotificationRemovedReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.dev.dita.daystarmemo.BROADCAST_NOTIFICATION_REMOVED" />
</intent-filter>
</receiver>
<receiver
android:name=".receivers.PushReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="0">
<action android:name="com.dev.dita.daystarmemo.BROADCAST_NOTIFICATION" />
</intent-filter>
</receiver>
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.dev.dita.daystarmemo" />
</intent-filter>
</receiver>
<service
android:name=".services.GcmService"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name=".services.MemoService"
android:exported="false" />
<service
android:name=".services.PushReceiverIntentService"
android:exported="false" />
<service
android:name=".services.PushIntentService"
android:exported="false" />
<service
android:name=".services.MemoPendingDownloadService"
android:exported="false" />
<service
android:name=".services.ConnectionService"
android:enabled="true"
android:exported="false" />
<service
android:name=".services.RegistrationService"
android:exported="false" />
<activity
android:name=".ui.documents.DocumentsActivity"
android:label="@string/title_activity_documents"
android:parentActivityName=".ui.main.MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.main.MainActivity" />
</activity>
<service
android:name=".services.TransfersService"
android:enabled="true"
android:exported="false" />
<activity
android:name=".ui.memos.MemoGroupActivity"
android:label="@string/title_activity_memo_group"
android:parentActivityName=".ui.main.MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.main.MainActivity" />
</activity>
<activity android:name=".ui.SearchableActivity">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity
android:name=".ui.schedule.ScheduleActivity"
android:label="@string/title_activity_schedule"
android:parentActivityName=".ui.main.MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.dev.dita.daystarmemo.ui.main.MainActivity" />
</activity>
<service
android:name=".services.ScheduleService"
android:enabled="true"
android:exported="false"></service>
</application>
</manifest>
Meine Implementierung zurück Knopf ist ähnlich der des Google IO 2015 App. Ich benutze keine Flaggen, wenn ich irgendeine Aktivität starte, also denke ich nicht, dass das das Problem ist. Diese
ist, wie ich die Aktivitäten starten:
private void goToNavDrawerItem(int item) {
Intent intent;
switch (item) {
case NAVDRAWER_ITEM_HOME:
startActivity(new Intent(this, MainActivity.class));
break;
case NAVDRAWER_ITEM_MEMOS:
intent = new Intent(this, MemoGroupActivity.class);
intent.putExtra("section", MemoGroupActivity.MEMO);
createBackStack(intent);
break;
case NAVDRAWER_ITEM_GROUPS:
intent = new Intent(this, MemoGroupActivity.class);
intent.putExtra("section", MemoGroupActivity.GROUP);
createBackStack(intent);
break;
case NAVDRAWER_ITEM_CONNECTIONS:
createBackStack(new Intent(this, ConnectionsActivity.class));
break;
case NAVDRAWER_ITEM_SCHEDULE:
createBackStack(new Intent(this, ScheduleActivity.class));
break;
case NAVDRAWER_ITEM_DOCUMENTS:
createBackStack(new Intent(this, DocumentsActivity.class));
break;
case NAVDRAWER_ITEM_SETTINGS:
createBackStack(new Intent(this, SettingsActivity.class));
break;
case NAVDRAWER_ITEM_LOGOUT:
showLogoutDialog();
break;
}
}
Heres das schaffen zurück Stapel Methode
private void createBackStack(Intent intent) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
TaskStackBuilder builder = TaskStackBuilder.create(this);
builder.addNextIntentWithParentStack(intent);
builder.startActivities();
} else {
startActivity(intent);
finish();
}
}
Es deaktiviert Ich habe bereits überprüft, dass – Michael
Ok, ich denke, Sie sollten, wie Sie die Aktivitäten und auch den Code der onOptionsItemSelected-Methode starten veröffentlichen. Vielleicht gibt es dort einen Fehler. Haben Sie bereits die Dokumentation überprüft? Https: //developer.android.com/training/implementing-navigation/ancestral.html Es gibt auch eine Beispiel-App dort. – fernandospr
Ja, ich habe bereits die Dokumentation überprüft – Michael