应用在运行onActivityResult后进入后台。

huangapple go评论103阅读模式
英文:

App goes to the background after running onActivityResult

问题

  1. @Override
  2. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  3. super.onActivityResult(requestCode, resultCode, data);
  4. switch (requestCode) {
  5. case RC_SIGN_IN:
  6. if (resultCode == RESULT_CANCELED) {
  7. finish();
  8. } else {
  9. System.out.println("Here" + Integer.toString(requestCode) + Integer.toString(resultCode));
  10. }
  11. case RC_START_APP:
  12. if (resultCode == RESULT_LOGOUT) {
  13. signout();
  14. } else {
  15. finish();
  16. }
  17. }
  18. }
英文:

I am using FirebaseUI to log in to my app. On returning from the login activity, the following onActivityResult-override prints Here1-1, which is as expected. However, immediately after, the activity finishes, which is not what I want. I feel really lost, does anyone have any idea what could be happening?

  1. @Override
  2. public void onActivityResult(int requestCode, int resultCode, Intent data){
  3. super.onActivityResult(requestCode,resultCode,data);
  4. switch (requestCode) {
  5. case RC_SIGN_IN:
  6. if (resultCode == RESULT_CANCELED) {
  7. finish();
  8. } else {
  9. System.out.println("Here" + Integer.toString(requestCode) + Integer.toString(resultCode));
  10. }
  11. case RC_START_APP:
  12. if (resultCode == RESULT_LOGOUT) {
  13. signout();
  14. } else {
  15. finish();
  16. }
  17. }
  18. }

答案1

得分: 2

你的案例需要添加break语句来停止执行,以防止它们继续执行到下一个案例。你的活动实际上是因为在第二个RC_START_APP案例中执行了finish()而结束的。

  1. switch (requestCode) {
  2. case RC_SIGN_IN:
  3. if (resultCode == RESULT_CANCELED) {
  4. finish();
  5. } else {
  6. System.out.println("Here" + Integer.toString(requestCode) + Integer.toString(resultCode));
  7. }
  8. break; // 在这里添加break
  9. case RC_START_APP:
  10. if (resultCode == RESULT_LOGOUT) {
  11. signout();
  12. } else {
  13. finish();
  14. }
  15. break; // 在这里添加break
  16. }
英文:

Your cases need a break to stop execution so they don't fall through to the next case. Your activity is actually just finishing due to executing the finish() in the second RC_START_APP case.

  1. switch (requestCode) {
  2. case RC_SIGN_IN:
  3. if (resultCode == RESULT_CANCELED) {
  4. finish();
  5. } else {
  6. System.out.println("Here" + Integer.toString(requestCode) + Integer.toString(resultCode));
  7. }
  8. break; // add this break
  9. case RC_START_APP:
  10. if (resultCode == RESULT_LOGOUT) {
  11. signout();
  12. } else {
  13. finish();
  14. }
  15. break; // add this break
  16. }

huangapple
  • 本文由 发表于 2020年9月20日 01:33:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/63971582.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定