java - 按后退键 Activity 不会返回

标签 java android back-button

我遇到了一个奇怪的问题。

按后退键 Activity 不会返回。 在 logcat 中显示

04-15 19:24:09.063: V/Activity(23041): Tracking Key Up, activity is resumed: false

这是我的 Activity 代码

package com.sandy.letsfixthat;

import android.app.Activity;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;


public class Slider extends Activity {
    TabSpec beginer,inter,dev;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.slider);
        TabHost th = (TabHost)findViewById(R.id.tabhost);

        LocalActivityManager mLocalActivityManager = new LocalActivityManager(this, false);

        // state will be bundle your activity state which you
        // get in onCreate
        mLocalActivityManager.dispatchCreate(savedInstanceState);
        th.setup(mLocalActivityManager);
        //tab for beginner
        beginer = th.newTabSpec("Begin");
        beginer.setIndicator("Beginner");
        Intent begin = new Intent(this, Beginner.class);
        beginer.setContent(begin);
        th.addTab(beginer);

        //tab for intermediate
        inter = th.newTabSpec("Inter");
        inter.setIndicator("Intermediate");
        Intent Intermediate = new Intent(this, Intermediate.class);
        inter.setContent(Intermediate);
        th.addTab(inter);

        //tab for developers
        dev = th.newTabSpec("Devel");
        dev.setIndicator("Other");
        Intent develop = new Intent(this, Developer.class);
        dev.setContent(develop);
        th.addTab(dev);
    }

    public boolean onCreateOptionsMenu(android.view.Menu menu) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu);
        MenuInflater blowUp = getMenuInflater();
        blowUp.inflate(R.menu.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()){
        case R.id.aboutUs:
            Intent i = new Intent(this,About.class);
            startActivity(i);
            break;

        case R.id.exit:
            finish();
            break;

  /*    case R.id.setting:
            Intent setting = new Intent (this,Settings.class);
            startActivity(setting);
            break;                          */
        }
        return false;
    }

    @Override
    public void onPause() {
        // your code.
        super.onPause();
        finish();
    }
}

MainActivity代码

package com.sandy.letsfixthat;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {
    Button go;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        go = (Button)findViewById(R.id.bgo);
        go.setOnClickListener(this);

    }

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        switch (arg0.getId()){
        case R.id.bgo:
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("NOTE:- this is an initial release. MORE TUTORIAL COMING IN NEXT UPDATE")
                   .setCancelable(false)
                   .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // do things
                    Intent i = new Intent(MainActivity.this,Slider.class);
                    startActivity(i);
                }
            });
            AlertDialog alert = builder.create();
            alert.show();
            break;
        }
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        finish();
    }
}

当我打开此 slider Activity 并按后退按钮时,没有任何反应。 按下后退按钮时应该执行的操作是退出应用程序。

最佳答案

只需添加这一行:

mLocalActivityManager.dispatchResume();

为我工作!

关于java - 按后退键 Activity 不会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017442/

相关文章:

java - 使用 hibernate 和 ms sql server 驱动程序

java - 如何在java中为google设置OAuth2的重定向URI

android - 将 minSdkVersion 从 3 更新到 4 - 它会影响现有的 api 3 用户吗?

android - 在 Android 中隔离单元和编写测试

jquery - 清除后退按钮上的表单?

Android:按下后退按钮时如何使用 OnCreate()

java - 如何从 Play 发送带有附件的电子邮件!框架 1.2.4

java - 如何使用Java RMI连接EC2实例?

android - Jetpack 组合导航的多个参数

ios - 如何为 UINavigationBar 的后退按钮创建投影?