完成应用程序时奇怪的主页键行为

时间:2013-06-12 19:25:16

标签: java android android-homebutton

我正在制作的应用程序将以打开SMS收件箱结束,以方便用户使用,并在此阶段完成。通常然后后退键将返回到活动,但由于这对用户没有任何意义,我只是尝试完成应用程序。这很完美,我甚至在这个阶段发布了一个版本......但是......主页键,可以猜到当你不想要生活中倒退的恼人感觉时,这是一个非常受欢迎的事情。现在它变得凌乱......基本上如果用户从收件箱中按回家,我以一些相当奇怪的方式丢失了应用程序,我不知道是否应该调用错误或安全功能。下次我启动应用程序时,它将直接转到新的意图(显示收件箱)完全绕过我的应用程序,没有onResume或任何东西。非常糟糕,因为我的应用程序被覆盖并变为打开收件箱链接。

有没有办法让这项工作完成?

import android.os.Bundle;
import android.view.View;
import android.app.Activity;
import android.content.Intent;

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

        setContentView(R.layout.activity_main);
    }

    public void onButtonClick(View v) {
        finish();

        final Intent smsIntent = new Intent(Intent.ACTION_MAIN);
        smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
        smsIntent.setType("vnd.android-dir/mms-sms");
        startActivity(smsIntent);       
    }
}

1 个答案:

答案 0 :(得分:0)

根据您的需要,您可以尝试一些事项

  • 在清单android:clearTaskOnLaunch="true"中添加您的根活动 使用此标志,只要从家中重新启动,您的应用就会从根活动开始。
  • 添加smsIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    当从家中重新启动应用程序时,这将清除SMS收件箱活动及其上方的所有活动。
  • 添加`smsIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 这将在重新启动时清除SMS收件箱活动。