Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何关闭所有活动_Android_Android Activity_Activity Finish - Fatal编程技术网

Android 如何关闭所有活动

Android 如何关闭所有活动,android,android-activity,activity-finish,Android,Android Activity,Activity Finish,登录页面>>主页>>搜索账户>>删除账户 然后我删除了一个帐户,我想进入登录页面。我的意思是,在没有登录页面的情况下关闭所有活动的实际代码是什么 这是我的代码,但不是工作 AlertDialog.Builder=新建AlertDialog.Builder(删除类this); 建造商名称(“删除”); setMessage(“您想删除您的帐户吗?”); builder.setPositiveButton(“是”,新建DialogInterface.OnClickListener(){ @凌驾 pu

登录页面>>主页>>搜索账户>>删除账户

然后我删除了一个帐户,我想进入
登录页面
。我的意思是,在没有登录页面的情况下关闭所有活动的实际代码是什么

这是我的代码,但不是工作

AlertDialog.Builder=新建AlertDialog.Builder(删除类this);
建造商名称(“删除”);
setMessage(“您想删除您的帐户吗?”);
builder.setPositiveButton(“是”,新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
String id=MainActivity.return_id();
Firebase Firebase=新Firebase(“用户”);
firebase.child(id.removeValue();
完成();
Toast.makeText(delete_class.this,“帐户已成功删除”,Toast.LENGTH_LONG.show();
}
});
builder.setNegativeButton(“否”,空);
AlertDialog AlertDialog=builder.create();
alertDialog.show();

您只需使用CLEAR\u TOP标志启动登录活动即可

Intent intent = new Intent(this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这样,所有以前的活动都将关闭,只有LoginActivity将位于堆栈上

使用此方法打开登录活动,它将杀死后堆栈中的所有其他活动

public static void GoToActivityAsNewTask(Activity context, Class<?> clazz) {
        Intent intent = new Intent(context, clazz);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        context.startActivity(intent);
        context.finish();

    }

希望这能解决您的问题

有意使用
CLEAR\u TOP
标志。它会解决你的问题

Intent intent = new Intent(this, LoginActivity.class);   
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
你可以试试这个

// Add activity
public static void addActivities(String actName, Activity _activity) {
    if (Config.screenStack == null)
        Config.screenStack = new HashMap<String, Activity>();
    if (_activity != null)
        Config.screenStack.put(actName, _activity);
}

// Remove Activity
public static void removeActivity(String key) {
    if (Config.screenStack != null && Config.screenStack.size() > 0) {
        Activity _activity = Config.screenStack.get(key);
        if (_activity != null) {
            Config.screenStack.remove(key);
            _activity.finish();
        }
    }
}

// Close all activities or screens
public static void closeAllScreens()
{
   if (Config.screenStack != null && Config.screenStack.size() > 0)
   {
       for (int i = 0; i < Config.screenStack.size(); i++)
       {
          Activity activity = Config.screenStack.get(i);
          if (activity != null)
          {
            Config.screenStack.remove(key);
            activity.finish();
          }
       }
    }
}
有关更多信息,请参考。

使用此方法:

    public static void finishAll(Context context)
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        ((Activity) context).finishAffinity();
    }
    else
    {
        ((Activity) context).finish();
                }
}

希望有帮助

您可能应该使用
activity.startActivityForResult()
。请务必检查有关此主题的信息。

请参阅我的答案,先生。
startActivityForResult
的可能副本用于启动
活动并从中获取结果。因为他想启动一个新的LoginActivity并清除所有以前的活动堆栈,所以他无法得到任何结果。如果链中的每个活动在完成某个操作时都返回一个结果,那么整个链就可以清理了。因此,在“活动结果”中,您检查下一个活动的操作是否已完成(例如,删除某些内容),然后您知道可以关闭当前活动。
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addActivities("DemoActivity", DemoActivity.this)
    setContentView(R.layout.activity_create_feed_post);
}
    public static void finishAll(Context context)
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        ((Activity) context).finishAffinity();
    }
    else
    {
        ((Activity) context).finish();
                }
}