按下后退按钮时应避免退出应用程序



我不知道为什么每次单击默认后退按钮时,它都会立即关闭我的应用程序。

我不使用:

_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();

发布用于启动此活动的代码。可能是您在调用活动开始后完成了()。因此,按下后退键可能会关闭应用程序,而不是返回到上一个活动。

相关内容

最新更新