我的應用程序在啓動時會打開FirstActivity。上次打開的活動
從FirstActivity我可以開始:SecondActivity,ThirdActivity。當我按主頁按鈕,然後返回到我的應用程序時,它總是打開FirstActivity,而不是打開最後一個活動(在返回啓動FirstActivity與onCreate()
後)。
我如何在上次活動中恢復應用程序狀態?
在代碼中,我不啓動FirstActivity。
我的清單:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bvblogic.nimbusnote"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17.0.0"
android:maxSdkVersion="19" />
<permission
android:name="com.bvblogic.nimbusnote.activities.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.bvblogic.nimbusnote.activities.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_TASKS"/>
<!--Permission for create shortcut on Home Screen-->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"></uses-permission>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:largeHeap="true"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.NimbusNote.Light"
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:name=".application.App">
<activity
android:name=".activities.StartActivity"
android:theme="@style/Theme.Sherlock.Light.NoActionBar"
android:windowSoftInputMode="stateHidden"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.startactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.FolderListActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.folderlistactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.SettingsActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.settingsactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.ExplorerActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.exploreractivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.PreviewNoteActivity"
android:windowSoftInputMode="adjustPan"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.previewnoteactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.VIEW_NOTE"></action>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.EditNoteActivity"
android:windowSoftInputMode="adjustResize"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.editnoteactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.NoteInfoActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.noteinfoactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.ChangePlaceMapActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.changeplacemapactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.PlacesActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.placesactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.ChangeTagsActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.changetagsactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.TagsActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.tagsactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<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=".activities.PainterActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.painteractivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.AccountSettingsActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.accountsettingsactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.SyncSettingsActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.syncsettingsactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activities.RecentNotesActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.bvblogic.nimbusnote.activities.recentnotesactivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service android:name=".services.FullSyncService" />
<service android:name=".services.PrioritySyncService" />
</application>
</manifest>
UPDATE: 比我開始從ExplorerActivity PreviewNoteActivity和按Home鍵和快捷鍵從打開的應用程序我回到ExplorerActivity。但按Back後,活動關閉並顯示PreviewNoteActivty。
堆棧:
- ExplorerActivity
- PreviewNoteActivity
按Home後,返回到應用程序:
- ExplorerActivity
- PreviewNoteActivity
- ExplorerActivity
但我沒有在應用程序重新啓動後啓動ExplorerActivity。 如果在應用程序啓動後,我關閉了後退按鈕問題的應用程序已解決。但是,編譯和第一次啓動後的問題實際上是
更新2: 後退按鈕偵聽
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerVisible(mDrawerLeft)) {
closeNavigationDrawer();
} else if (!notesFragment.searchView.isIconified()) {
notesFragment.searchView.setQuery("", true);
notesFragment.searchView.setIconified(true);
notesFragment.searchView.clearFocus();
} else if (!mDrawerLayout.isDrawerVisible(mDrawerLeft)) {
ActivityManager actM = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> listm = actM.getRunningTasks(1);
int iNumActivity = listm.get(0).numActivities;
if (iNumActivity > 1) {
finish();
} else {
//close activity
closeAction();
}
}
}
private void closeAction() {
if (System.currentTimeMillis() - lastTimeBackPressed <= 2000) {
App.isExplorerActivityStarted = false;
finish();
} else {
lastTimeBackPressed = System.currentTimeMillis();
Toast.makeText(getApplicationContext(), "Press again for exit", Toast.LENGTH_SHORT).show();
}
}
UPDATE3: 問題是緊迫的,如果從安裝apk文件(從SD卡)應用程序。如果從IDE(Android Studio)安裝問題沒有。
你用什麼代碼活動之間移動? –
這是正常的mainfest我認爲代碼導航中的問題,或者你實現後退按鈕的方法,你可以發佈代碼? –
哇,在意圖過濾器有點野外!看起來像將從啓動器啓動的活動是ExplorerActivity。爲什麼有這麼多其他意圖過濾器?我的猜測是你不需要所有的人,尤其是那些只是指向包含它們的活動的人。例如。爲什麼在EditNoteActivity和NoteInfoActivity中有一個意圖過濾器?當你使用你的應用程序時,你需要做的就是創建一個intent intent = new Intent(getActivity(),EditNoteActivity.class);告訴操作系統你正在嘗試去那個活動。 –