我正在制作关于杀死正在运行的服务的简单活动。 我找到了一个方法“killBackgroundProcesses”来杀死后台应用程序或服务。 我试图杀死后台应用程序和服务。 正在运行的应用程序和一些服务很好,但特别是音乐服务从未被杀死......
我想创建一个杀死背景音乐服务的simeple应用程序。 该应用程序只有一个按钮(名称是“杀死音乐”) 如果用户单击该按钮,则应该杀死背景音乐。
默认音乐播放器播放音乐.. 我怎么能杀死背景音乐? 还有其他杀死音乐服务的方法吗?
这是我试过的代码.. 任何建议将不胜感激。 谢谢。
public class Android32_TaskKillerActivity extends Activity {
ActivityManager manager;
List<RunningServiceInfo> list;
String str=""; //to contain running Servies name and write on Toast message.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bt = (Button)findViewById(R.id.button1); //to kill All Services
manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
list = manager.getRunningServices(300); //save current Servies to List
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0; i<list.size(); i++){
RunningServiceInfo info = list.get(i);
String temp = info.service.getPackageName();
str += temp+"\n";
manager.killBackgroundProcesses(temp);//killing services one by one to the end.
}
Toast.makeText(getBaseContext(), "All Services are finished \n" + str, 3000).show();
}
});
}
}
答案 0 :(得分:3)
我想创建一个杀死背景音乐服务的simeple应用程序。该应用程序只有一个按钮(名称为“Kill Music”)如果用户单击该按钮,则应该杀死背景音乐。
这是不可能的。
killBackgroundProcesses()
会终止后台进程。但是,“背景”一词有多种定义(反之,“前景”)。音乐应用已调用startForeground()
向Android表明它是前台用户体验的一部分,如果可能,不应因内存不足而关闭。
引用killBackgroundProcesses()
文档:
这与杀死那些进程以回收内存的内核相同;系统将根据需要在将来重新启动这些流程。
因此,killBackgroundProcesses()
不应该杀死使用startForeground()
的服务,例如音乐应用。
用户可以通过音乐应用程序停止音乐应用程序,如果他们是特别奇怪的用户,则可以通过“设置”应用程序停止。