从最近启动应用程序时重定向到特定活动

时间:2015-01-10 10:10:42

标签: android android-activity android-homebutton

假设您现在处于活动A并按主页按钮,您的应用将转到后台。现在长按主页按钮,你可以看到最近的应用程序。如果我点击我的应用程序,它应该采取特定的活动,而不是活动A.

2 个答案:

答案 0 :(得分:1)

参考这篇文章 - How can I detect user pressing HOME key in my activity?已经实现了以下逻辑。

使用上面的帖子检测主页按钮按下并在首选项中存储标记。通过第一个OnRestart()方法从Recent列表中启动应用程序将被触发,因此请检查主页按钮按下标志并启动特定活动。

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        if (isApplicationSentToBackground(this)) {
            // Do what you want to do on detecting Home Key being Pressed
             preferences.setHomeButtonPressed(true);
        }

    }

    @Override
    protected void onRestart() {
        super.onRestart();
    // Do what you want to do on detecting app launching from recents section
        if (preferences.isHomeButtonPressed()) {
            Intent i = new Intent(this,
                    ParticularActivity.class);
            startActivity(i);
            preferences.setHomeButtonPressed(false);
        }

    }

    public static boolean isApplicationSentToBackground(final Context context) {
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
        if (!tasks.isEmpty()) {
            ComponentName topActivity = tasks.get(0).topActivity;
            if (!topActivity.getPackageName().equals(context.getPackageName())) {
                return true;
            }
        }
        return false;
    }

答案 1 :(得分:0)

我认为这是一个奇怪的要求,但你可以这样做:

@Override
public void onResume() {
   startActivity(new Intent(this, TargetActivity.class));
}   

onResume()在您的应用处于“正在运行”状态之前被调用

enter image description here