android service 问题

谁谁谁谁谁 2013-10-22 10:51:55
这里是我的一个启动后自动停止的service
  startBrew();
// 创建Intent
intent = new Intent();
// 设置Action属性
intent.setAction("com.qin.appsize.MY_SERVICE");

//执行service
// 执行定时器
mTimer = new Timer();
mTimerTask = new TimerTask() {
String timeLimit=(String)brewTimeLabel.getText().toString();
int i = Integer.parseInt(timeLimit.substring(0,timeLimit.length()-1))*60;
public void run() {
// 打印时间
Log.d("AndroidTimerDemo", "timer:" + formatDate());
// 设置一个自己停止的功能
// 启动该Service
startService(intent);
if (i < 1) {
stopService(intent);
System.out.println("服务线程自动停止");
mTimer.cancel();
}
System.out.println("服务线程倒计时:" + i);
i--;
}
};
mTimer.schedule(mTimerTask, 0, 1*1000);
BrewClockActivity.this.finish();
}
}


这里是我的service
package com.qin.appsize;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;


public class TimerService extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
super.onCreate();
}
public void onStart(Intent intent, int startId) {
Log.v("=========", "***** DaemonService *****: onStart");
// 这里可以做Service该做的事

System.out.println("我在做事!");
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}

}

现在运行后是每一秒就执行一次onStart()方法 打印“我在做事!”
我想在 “我在做事!”那里做结束指定进程的功能 应该怎么做 也就是每一秒都在结束这个我指定的(例如指定一个闹钟程序)进程。
求大神指教 如何做
...全文
153 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
谁谁谁谁谁 2013-10-23
  • 打赏
  • 举报
回复
哈哈 感谢各位 搞定了 补充下6楼第二种方法的forceStopPackage是一个隐藏的方法无法直接调用 所以需要用到反射
	        actManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
	            
	        Method method;
			try {
				method = Class.forName("android.app.ActivityManager").getMethod("forceStopPackage", String.class);
			    method.invoke ( actManager.getClass(), "com.android.camera");
			} catch (NoSuchMethodException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalArgumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	       
	     
谁谁谁谁谁 2013-10-23
  • 打赏
  • 举报
回复
引用 6 楼 ncepu307 的回复:
楼主无非就是想杀死指定的进程这个需求吧?
1、杀死进程自己
System.exit(0);
android.os.Process.killProcess(android.os.Process.myPid());
2、根据包名,杀死别的进程
ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
am.forceStopPackage("指定包名");
需要在androidmanifest.xml中添加权限:
<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/>
楼主应该是需要第二种。

用了第二种 为什么会出现无法调那个方法
依然绿茶 2013-10-23
  • 打赏
  • 举报
回复
楼主无非就是想杀死指定的进程这个需求吧? 1、杀死进程自己 System.exit(0); android.os.Process.killProcess(android.os.Process.myPid()); 2、根据包名,杀死别的进程 ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); am.forceStopPackage("指定包名"); 需要在androidmanifest.xml中添加权限: <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/> 楼主应该是需要第二种。
谁谁谁谁谁 2013-10-23
  • 打赏
  • 举报
回复
没有人了么 顶
谁谁谁谁谁 2013-10-22
  • 打赏
  • 举报
回复
怎么写结束进程呢? 有没有例子 谢谢 结束的话 在上面那个定时器里有 他自己到时间会结束的 我前面试了几个方法 例如用这个 actManager.restartPackage("com.commonsware.Now"); 指定结束com.commonsware.Now包的进程 每一秒执行一次 但是运行不了 报错了 我是新手刚学android 大神指教啊
凉凉二点凉 2013-10-22
  • 打赏
  • 举报
回复
引用 2 楼 u010384801 的回复:
是的 现在问题是我试了几种关闭的方法 写入代码后 无法运行service 所以我主要是想问 1:在那个onStart方法中可以写结束指定进程的方法么 2:有没有一些结束进程的例子 。谢谢
直接在onstart里面做完事后调 stopSelf() or stopService()
谁谁谁谁谁 2013-10-22
  • 打赏
  • 举报
回复
是的 现在问题是我试了几种关闭的方法 写入代码后 无法运行service 所以我主要是想问 1:在那个onStart方法中可以写结束指定进程的方法么 2:有没有一些结束进程的例子 。谢谢
Birds2018 2013-10-22
  • 打赏
  • 举报
回复
你是想在service里面做某些动作对吧。 你直接写代码不就行了,想做什么需要写自己的逻辑,比如启动另外一个程序,或者关闭另外一个程序。】】 是否理解正确?

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧