• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Android:如何具体处理后按?

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:16:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

让我更详细地解释一下。

首先;我知道如果用户按下并返回上一个 Activity ,则上一个 Activity 会正确触发 onResume 方法。这没关系。

我的应用程序中有一个根 Activity ,它通过按钮引导 4 个不同的 Activity 。我想了解,用户在哪个 Activity 上按下了返回按钮?是否可以使用类似 Handler 或类似的东西?

实际上,我已经找到了解决方案。我有 4 个不同的静态 bool 变量,每个变量代表一个 Activity。让我在代码中显示:

public class MainActivity extends Activity { // This is root

    static Boolean activityA;
    static Boolean activityB;
    static Boolean activityC;
    static Boolean activityD;

    public void onClick(View v) {
        if(v == ActivitvyA) //of course psuedo 
             activityA = true
        //...there are similar controls
    }

    protected void onResume() {
        if(activitiyA) // If true, this means the user pressed back on ActivityA
    }

}

你怎么看?有什么不同而有效的方法吗?

任何帮助都会很棒。



Best Answer-推荐答案


基本上,您想知道用户登陆您的根 Activity 时来自哪个 Activity 。

我认为携带此类信息的最佳方式是使用 startActivityForResult 启动您的子 Activity 。

public static final int CODE_A = 10;
public static final int CODE_B = 20;

public void goToA() {
  Intent i = new Intent(this,AActivity.class);
  startActivityForResult(i, CODE_A);
}

public void goToB() {
  Intent i = new Intent(this,BActivity.class);
  startActivityForResult(i, CODE_B);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if(resultCode==CODE_A) {
    // ...
  }
  else if(resultCode==CODE_B) {
    // ...
  }
}

另一种方法是在某处(例如在自定义应用程序类中)存储用户可见的最后一个 Activity ,并在每个 Activity 的 onPause 方法中更新它。比如:

class MyApplication extends android.app.Application {
  public Class latestActivity;
}

class MyBaseActivity extends Activity {
  public void onPause() {
    ((MyApplication)getApplication()).latestActivity = this.getClass();
    super.onPause();
  }
}

最后一种方法是将刚刚启动的 Activity 存储在根 Activity 中。

class MyRootActivity extends Activity {
  private String latestUserAction;

  public void goToA() {
    latestUserAction = "goToA";
    startActivity(Intent.ACTION_VIEW, .........
  }

  // Don't forget to check that latestUserAction gets saved and restored when your activity is paused or stopped.
}

关于Android:如何具体处理后按?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11669704/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap