为了方便用户,我正在制作的应用程序将以打开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);
}
}
最佳答案
根据您的需求,可以尝试一些方法
在清单android:clearTaskOnLaunch="true"
中添加到您的根活动中
有了此标志,无论何时在家中重新启动,您的应用都将从root活动开始。
添加smsIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
在家重新启动应用程序时,这将清除任务堆栈中的SMS收件箱活动及其上方的所有活动。
添加`smsIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
重新启动时,这将清除SMS收件箱活动。