我不知道为什么每次点击默认后退按钮,它都会立即关闭我的应用程序。
我不使用:
清单xml文件中的_ android:noHistory =“true”
_ newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_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停止,但未运行
请帮帮我。感谢
答案 0 :(得分:1)
我想这是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());
}
});
您将获得当前标签以便存储它。当发生下一次更改时,只需检索存储的值并将其替换为当前值。
答案 1 :(得分:0)
无法查看日志的来源。但是发布的源代码只使用默认行为,即停止活动。
尝试注释掉super.onBackPressed();
答案 2 :(得分:0)
发布用于开始此活动的代码。可能是你完成()启动后的调用活动。因此,按下可能会关闭应用程序,而不是回到之前的活动。