【发布时间】:2011-08-31 15:00:53
【问题描述】:
我在 onStart、onPause 和 onResume 的 super 上设置了多个断点 活动。我想处理被按下的后退按钮,而不是回到主要活动,我试图让我的程序转到后退按钮之前的最后一个活动。
在调试模式下玩耍并遵循这三个函数调用时,我发现它们是不可预测的。当一个选择要进入另一个活动时,我所在的活动我的onresume()称为我认为onpause()将被调用,并且在onresume()之后,调用onstop()。
我在这里做错了什么?
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
>
<activity android:name=".SplashScreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" android:configChanges="keyboardHidden|orientation"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"
android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".CountrySelection" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".StateSelection" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".CitySelection" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".CategorySelection" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".SubCategorySelection" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".DisplayAdsActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".DisplayAdActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
<activity android:name=".SavedAdsActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"/>
</application>
case R.id.locationbutton:{
Intent i = new Intent();
i.putExtra("Locations",continents);
i.setClass(this,CountrySelection.class);
startActivityForResult(i,LOCATION_REQUEST_CODE);
break;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
//super.onListItemClick(l, v, position, id);
Intent i = new Intent();
location = position;
i.putExtra("States",continents.get(position).getStates());
i.setClass(this, StateSelection.class);
startActivityForResult(i,0);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
//super.onListItemClick(l, v, position, id);
Intent i = new Intent();
i.putExtra("Cities",states.get(position).getCounties());
i.setClass(this, CitySelection.class);
startActivityForResult(i,0);
}
【问题讨论】:
-
“返回按钮之前的最后一个活动”是什么意思?
-
@njzk2 我有一个活动,我用 startActivityForResult(intent) 从我的主要活动中调用。从下一个活动开始,还有 3 个活动开始,并说用户在第二次做了选择选择不喜欢并想从第三次回到第二次,现在我的程序马上回到主要活动。我希望用户能够在点击后退按钮后返回到第二个活动
-
您的问题是您的活动没有正确进入活动堆栈。您可以粘贴清单(您声明活动的部分)吗?
-
taht 很奇怪。当您从另一个活动开始时,新活动将被放入活动堆栈中,直到按下返回(或直到其他一些行为与所述堆栈相适应)。您不是在修改活动堆栈吗?
-
@njzk2 我没有修改我知道的活动堆栈。我正在从 MainActivity 调用 startActivityForResult() ,然后调用后续活动以实现最终结果。我在这些活动中没有做任何花哨的事情。我只是加载带有内容的列表视图并使用 onItemClickListener 返回选择。
标签: android