在java中添加关闭应用程序的按钮是否合乎逻辑且正确?

在java中添加关闭应用程序的按钮是否合乎逻辑且正确?,java,android,android-studio,Java,Android,Android Studio,我正在使用Android Studio。 在onCreate内的main活动中,我执行了以下操作: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startTime = SystemClo

我正在使用Android Studio。 在
onCreate
内的
main活动中,我执行了以下操作:

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        
        startTime = SystemClock.uptimeMillis();
        serverChecksThread.start();
        status1 = (TextView) findViewById(R.id.textView3);
        timerValue = (TextView) findViewById(R.id.timerValue);
        uploadedfilescount = (TextView) findViewById(R.id.numberofuploadedFiles);
        uploadedfilescount.setText("Uploaded Files: 0");

        addListenerOnButton();
        initTTS();

        Button btn1 = (Button) findViewById(R.id.btn1);
        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                finish();
                System.exit(0);
            }
        });
    }
活动_main.xml
中,我添加了:

<Button android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:id="@+id/btn1"
            android:text="Close App" />

我有两个问题

主要的问题是,如果添加一个按钮来关闭应用程序,这样它就不会留下任何东西,这是合乎逻辑的好事情吗?这样,当我在我的android设备上再次运行应用程序时,它开始完全重置


子问题是当我点击按钮并退出应用程序时,当我再次运行它一毫秒时,应用程序会闪烁。它发生在我添加了这个按钮代码之后,这是以前没有的。我没有收到错误或异常,但它会闪烁很短的时间。

没有必要在android上的应用程序中添加关闭按钮,因为设备上通常有一个软件按钮或一个硬件按钮来关闭(最小化)应用程序。因此,添加一个按钮不是一件好事,而且也是不合逻辑的


关于你的第二个问题,我不太理解你的观点。

即使你用一个按钮关闭你的应用程序,它也不会永久关闭,它仍然会在用户设备上显示为“在后台运行的应用程序”。因为android不像windows那样工作,所以添加这样一个按钮并没有多大用处。 据我所知,唯一使用此按钮的应用程序是使用它来100%确保用户离开应用程序,并且他拥有的连接将被关闭,因此其他人将无法使用他的登录名或密码…

在Android中,“运行”和“关闭”是模糊的概念。当应用程序位于后台时,它可能正在运行,也可能没有实际运行。当某个活动处于backback中时,它的内存中实例可能存在,也可能不存在。当您的最后一个活动完成时,框架可能会终止流程,也可能不会终止流程。当您再次启动应用程序时,框架可能会也可能不会为您的
应用程序
类创建新实例

调用
System.exit(0)
是个坏主意,因为它会使Android框架短路。它可能会导致未指定的行为(读:真奇怪的bug)。最好只完成最后一个活动,让框架随心所欲


显示关闭按钮是否好是一个意见问题。谷歌对此表示反对。“关闭”活动的首选方法是按下后退按钮。

问题是当我点击android设备上的后退按钮这个大三角形我的lg g3上有三个类似按钮这个三角形看起来像左边的箭头|>然后是O和一个正方形。当我点击三角形,然后再次启动我的应用程序时,我可以听到一些声音,因为我正在应用程序中使用文本转换语音,或者如果文本发生了更改,我可以看到最后的更改。最后一项活动。我需要以某种方式确保每次启动应用程序时,它都会干净地启动。但现在,当我每次启动应用程序时,它似乎都在记住最后的活动。@DanielLip每次启动时,都有办法让你的应用程序干净地启动,但这是一个完全不同的问题。如果你还需要帮助,最好先搜索答案,然后再问一个新问题。