我尝试了几种方法来从片段内部结束应用程序,例如:
system.exit(1)
android.os.Process.killProcess(android.os.Process.myPid());
getActivity().finish();
Run Code Online (Sandbox Code Playgroud)
它是所有的片段代码;退出代码放在 exitDialog.setPositiveButton oncliklistener 上,在我的尝试中使用支持父活动而不是退出
package com.TB.mylistprojct;
import android.os.Bundle;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
public class ActFooter extends Fragment
{
View EMyView =null;
Button BtnExit =null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater Inflater,ViewGroup Container,Bundle SavedInstanceState)
{
View MyView=Inflater.inflate(R.layout.actfooter, Container,false);
EMyView=MyView;
InitialUI();
return MyView;
}
public void InitialUI()
{
BtnExit=(Button)EMyView.findViewById(R.id.Btn_exit);
BtnExit.setOnClickListener(BtnExit_OnClick);
}
public OnClickListener BtnExit_OnClick=new OnClickListener()
{
@Override
public void onClick(View arg0)
{
AlertDialog.Builder exitDialog=new AlertDialog.Builder(getActivity());
exitDialog.setTitle("Warning");
exitDialog.setMessage("Exit Program");
exitDialog.setPositiveButton("YSE", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface arg0, int arg1)
{
// Exit Code PUT Here
}
});
exitDialog.setNegativeButton("NO", null);
exitDialog.show();
}
};
}
Run Code Online (Sandbox Code Playgroud)
但是应用程序返回到父活动
尝试这个:
getActivity().moveTaskToBack(true);
getActivity().finish();
Run Code Online (Sandbox Code Playgroud)
最后我找到了解决方案
首先我在片段中添加以下代码
Intent intent = new Intent(getActivity(), ACTMain.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("LOGOUT", true);
startActivity(intent);
getActivity().finish();
Run Code Online (Sandbox Code Playgroud)
在主要活动中(在 onCreate 函数中)我使用 if 语句检查状态并退出:)
if (getIntent().getBooleanExtra("LOGOUT", false))
{
finish();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13681 次 |
| 最近记录: |