2016-09-25 68 views
-1

我曾尝试在其他问题后退按钮行为像Home键的描述使用下面的代码,但它不工作:Android应用:BACK按钮的作用类似HOME键---问题

@Override 
public void onBackPressed() { 
moveTaskToBack(true); 
} 

我没有要点评论别人的问题,因为我已经打开了这个问题。

第一个问题:HOME按钮正在让应用程序退出。第一次复位智能手机后,HOME按钮将App置于后台(不退出)

第二个问题:我试图让BACK按钮像上面的代码一样充当HOME按钮,但是BACK按钮仅被禁用。

。在第一次成功登录和Twitter身份验证之后,当用户单击BACK按钮或HOME按钮(Android按钮)时,应用程序必须保持在后台(不退出)。

我在做什么错?

感谢

的应用程序: http://play.google.com/store/apps/details?id=com.xranky

固定问题2:下面@zilk代码

固定问题1:你必须插入下面的代码上的登录/启动屏幕

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
     // Activity was brought to front and not created, 
     // Thus finishing this will get us to the last viewed activity 
    finish(); 
    return; 
    } 

    // Regular activity creation code... 
    } 

来源: How to return to the latest launched activity when re-launching application after pressing HOME?

回答

0

对此使用下面的代码。

public void onBackPressed() { 
       super.onBackPressed(); 
      } 
+0

当我插入上面的代码,与HOME键的问题,1是固定的(并不需要重置智能手机的应用程序切换到后台)。但是,BACK按钮使应用程序退出。 –

+0

我不明白2点。 –

0

下面的代码没有完成你的活动,但是你的应用程序需要像home按钮这样的背景。

public void onBackPressed() {  
    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    startActivity(intent); 
} 
+0

它没有工作。当我点击HOME按钮时,应用程序将转到后台。再次点击应用程序图标后,打开登录屏幕(不是去前台后的最后一个屏幕)。 –

+0

@AlexBarros这是问题的答案。 “打开登录屏幕(而不是在进入后台之前的最后一个屏幕)。”是您应该在登录活动内部控制的另一个问题。也许你可以在关闭之前存储最新的活动,并在需要时打开它。 – ziLk

+0

你是对的。使用上面的代码,当我点击“返回”或“主页”按钮时,应用程序将转到后台。之后,当我点击应用程序图标时,应用程序会打开第一个屏幕(登录屏幕),当我点击后退按钮时,应用程序会转到背景前的最后一个屏幕。我正在为商店上次活动寻找一个很好的解决方案。 –

0

在你的活动中你必须重写onBackPressed()。

@Override 
     public void onBackPressed() { 
      super.onBackPressed(); 
      Utils.redirectToHomeActivity(this); 
     } 

Utils.java

public static void redirectToHomeActivity(Activity activity) { 
      if (activity == null || activity.isDestroyed()) 
       return; 
      if (!activity.isTaskRoot()) return;//Return whether this activity is not in the root of a task. 

      Intent intent = new Intent(activity, MainScreenActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);//this is use to start new activity 
      activity.startActivity(intent); 
     }