我不知道为什么每次单击默认后退按钮时,它都会立即关闭我的应用程序。
我不使用:
_android:noHistory="true"在Manifest xml文件中
_newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAAR_TOP)活性
我在Manifest xml文件中的活动是:
<activity
android:name="com.example.canvas_bar.member.MemberActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_member" >
</activity>
我的backPress功能:
@Override
public void onBackPressed()
{
Log.e("back", "Last matches : pressed accepted");
super.onBackPressed();
}
替换活动的我的代码(在Tabhost的选项卡中)
public void replaceContentView(String id, Intent newIntent)
{
try
{
View view = getLocalActivityManager()
.startActivity(id,newIntent)
.getDecorView();
this.setContentView(view);
}
catch(Exception e)
{
String msg = e.getMessage();
Log.d("Change Activity", msg);
}
}
在Log Cat中,它显示:
TRACE已请求停止,但未运行
请帮帮我。谢谢
我想这是TabHost
的默认行为。您只是在替换ContentView
。如果你像这样启动另一个Activity
-
startActivity(new Intent(this,YourClass.class));
如果YourClass是一个单独的类,那么这个问题就不会发生,但由于您在同一个Tab
中替换了它,所以问题就发生了。一个简单的调整是明确地返回到以前的Activity
。您可以在onBackPressed
中提供一个Intent
以返回到上一个Activity
。
编辑-您无法获得以前的Tab
,但您可以自己存储信息。只需记录班上以前监听onTabChanged()
的选项卡。
static TabHost mytabs;
mytabs = getTabHost();
mytabs.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String arg0) {
Log.i("***Selected Tab", "Im currently in tab with index::" + mytabs.getCurrentTab());
}
});
您获取了当前选项卡,因此将其存储。当下一次更改发生时,只需检索存储的值并将其替换为当前值。
看不到日志的来源。但是发布的源代码只是使用默认行为,即停止活动。
尝试注释super.onBackPressed();
发布用于启动此活动的代码。可能是您在调用活动开始后完成了()。因此,按下后退键可能会关闭应用程序,而不是返回到上一个活动。