2016-04-30 55 views
2

我的android应用程序有3个屏幕。完成以前的活动按钮点击android

  • 屏幕1(主屏幕)
  • 屏幕2
  • 屏幕3

屏幕1点开始屏幕2点屏幕2开始屏幕3.

我已经添加了一个名为按钮在屏幕3上退出。我想要的是当用户按下此按钮时,屏幕1和屏幕2的活动应该完成。

+0

你想退出应用程序或清空你的活动堆栈? – sushildlh

+0

当您将意图传递给另一个活动时完成第一个activity.like Intent i = new Intent(getApplicationContext(),Screen2.class); \t \t \t \t startActivity(i); \t \t \t \t finish();你在screen1.class中编写这段代码,所以Screen1在那里完成activity.tell它它正在工作。 –

+0

按退出按钮屏幕3会发生什么情况? – Apurva

回答

3

当您按屏幕3中的退出按钮时,您可能会启动另一个活动,该活动将会停止堆栈中的所有其他活动并将自行关闭。这是我的工作示例。

public class ExitActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if (android.os.Build.VERSION.SDK_INT >= 21) { 
      finishAndRemoveTask(); 
     } else { 
      finish(); 
     } 
    } 

    public static void exitApplication(Context context) { 
     Intent intent = new Intent(context, ExitActivity.class); 

     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 

     context.startActivity(intent); 
    } 
} 

所以你需要调用exitApplication功能在您退出按钮onClick

+1

感谢兄弟的帮助 – Eagle

0

退出按钮单击写入以下代码:

Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

这将清除所有以前的活动。

+0

假设'家庭'活动是屏幕三,那么它将清除活动堆栈和*重新启动*活动,这是解决方法,但不是确切的解决方案。 – Apurva