打开的意图如下
Intent i = new Intent();
i.setClassName("com.example.tensecendreopenpro",
"com.example.tensecendreopenpro.MainActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(i);
下面来解析
com.example.tensecendreopenpro为包名
com.example.tensecendreopenpro.MainActivity为包里面的哪个Activity
可能有读者会奇怪为什么要加这么一句话,
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
因为在调用startActivity(i)的时候报错,信息如下:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
解决方法:
在前面加上intent.addFlags(FLAG_ACTIVITY_NEW_TASK)或者使用Activity.startActivity(intent)
如果调出的Activtivity只是一个功能片段,并没有实际的意义,也没有必要出现在长按Home键调出最近使用过的程序类表中,那么使用FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS