1

为了方便用户,我正在制作的应用程序将以打开 SMS 收件箱结束,现阶段已完成。通常,后退键会返回到活动,但由于这对用户没有任何意义,我只是试图完成应用程序。这非常有效,我什至在这个阶段发布了一个版本......但是...... home键,谁会猜到当你不想要那种令人讨厌的生活倒退的感觉时按下它是一个非常流行的东西。现在它变得一团糟......基本上,如果用户从收件箱按回家,我会以某种相当奇怪的方式丢失应用程序,我不知道我是否应该称之为错误或安全功能。下次我启动应用程序时,它将直接进入新意图(显示收件箱),完全绕过我的应用程序,没有 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);       
    }
}
4

1 回答 1

1

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

  • 添加到清单中的根 Activityandroid:clearTaskOnLaunch="true"
    使用此标志,您的应用程序将在从家重新启动时从根 Activity 启动。
  • 添加smsIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    这将在从家重新启动应用程序时清除任务堆栈中的 SMS 收件箱活动及其上方的所有活动。
  • 添加`smsIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 这将在重新启动时清除 SMS 收件箱活动。
于 2013-06-12T20:16:47.440 回答