我在最后几天搜索
如何从最近列表中删除活动(也称为概览屏幕,最近的应用列表..等)
这是我的 android 清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.abc.visibility">
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:noHistory="true"
android:taskAffinity=""
android:excludeFromRecents="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这是我的 MainActivity
的JavaCodepublic class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {super.onResume();}
public void onWindowFocusChanged(boolean hasFocus) {if (!hasFocus) {clearTask();}}
void clearTask(){if(android.os.Build.VERSION.SDK_INT >= 21){finishAndRemoveTask();} else{finish();}}
@Override
public void onBackPressed() {super.onBackPressed();}
}
所以,我的问题很简单......
如何从最近的列表中删除我的活动
在我的案例中: 只有一项活动
我只需要这么多。
如果你真的知道该怎么做,请帮助我。
答案 0 :(得分:0)
如果我理解并且您想要在按主页按钮或任何按钮时从最近使用的应用列表中删除您的应用,那么您可以查看answer。
答案 1 :(得分:0)
在Manifest.xml
中使用此android:autoRemoveFromRecents="true"
。
<activity
android:name=".MainActivity"
android:autoRemoveFromRecents="true">
在活动中将您的代码更改为此格式。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(android.os.Build.VERSION.SDK_INT >= 21)
{
finishAndRemoveTask();
}
else
{
finish();
}
}
public static void exitApplication(Context context)
{
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(intent);
}
}
当os版本为Api Level&lt; 21然后使用此代码关闭它。
MainActivity.exitApplication(context);
希望这会对你有所帮助。
答案 2 :(得分:0)
使用AppTask类删除任务
public void onRemoveFromRecents(View view) {
finishAndRemoveTask();
}
保留已完成的任务
如果要在概览屏幕中保留任务,即使其活动已完成,也要在启动活动的Intent的addFlags()方法中传递FLAG_ACTIVITY_RETAIN_IN_RECENTS标志。
private Intent newDocumentIntent() {
final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class);
newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT
android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS);
newDocumentIntent.putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER,
incrementAndGet());
return newDocumentIntent;
}
这是Android docs的链接,这是你要求的here
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
TypedValue typedValue = new TypedValue();
Resources.Theme theme = getTheme();
theme.resolveAttribute(R.attr.colorPrimary, typedValue, true);
int primaryColor = typedValue.data;
Bitmap iconBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_activity_welcome);
ActivityManager.TaskDescription td = new ActivityManager.TaskDescription(null, iconBitmap, primaryColor);
setTaskDescription(td);
iconBitmap.recycle();
}