WEB开发网
开发学院手机开发Android 开发 android 进程的优先级 阅读

android 进程的优先级

 2013-10-06 14:13:31 来源:WEB开发网   
核心提示:第二个参数是通知对象,startForegroud方法的参数与通知管理器相同,android 进程的优先级(2),使用上也类似,都是发送一个通知,项目入口:MainActivity类,该中关键代码如下所示:@Overridepublic void onClick(View v) {//创建Intent对象,并指定该通知
第二个参数是通知对象。
startForegroud方法的参数与通知管理器相同,使用上也类似,都是发送一个通知,并指定该通知对象的id值。
2、stopForeGround(int id);
作用:取消(指定id值所通知的Service对象)前台进程。
12.1.3.设置Service为前台进程的步骤
步骤1、在Service类的onStartCommand方法中(通常在该方法中)创建Intent对象,并指定与其绑定的Activity,示例代码如下:
Intent foreIntent=new Intent(this, MainActivity.class);
步骤2、创建PendingIntetn对象
PendingIntent pintent=PendingIntent.getActivity(
this, 0, foreIntent, PendingIntent.FLAG_UPDATE_CURRENT);
说明:第四个参数指明在通知栏随时刷新通知。
步骤3、创建通知对象,示例代码如下:
Notification noti=new Notification(
R.drawable.icon,"notification",System.currentTimeMillis());
说明:
第一个参数是通知栏中显示的本通知的图标。
第二个参数是通知栏中显示的本通知的标题。
第三个参数是本通知发出的时间。
步骤4、将此通知放到通知栏的(Ongoing)正在运行组中,示例代码如下:
noti.flags=Notification.FLAG_ONGOING_EVENT;
步骤5、设置通知的点击事件,示例代码如下:
noti.setLatestEventInfo(this, "title","content", pintent);
步骤6、向指定的Activity发送通知,并设置当前的Service对象为前台进程,示例代码如下:
startForeground(97789, noti);
12.1.4.示例
运行图-1所示的窗口:
图-2
1、单击图-1中的start foreground按钮,将启动一个Service对象,并设置改Service为前台进程,在该在日志窗口中出现图-2中红框内的第一行信息。
2、单击图-2中的stop foreground按钮,将取消Service的当前进程,并在日志窗口中显示图-2中红框内的第二行信息。
以下列出关键代码:
步骤1、创建项目exer12_01,包名为com.tarena.exer12_01,项目入口:MainActivity类,该中关键代码如下所示:
@Override
public void onClick(View v) {
//创建Intent对象,并设置目标组件为MyService
Intent intent=new Intent();
intent.setClass(this, MyService.class);
switch(v.getId()){
case R.id.btnStartFore:
//设置intent.action的值为Constant.ACTION_FORE
intent.setAction(Constant.ACTION_FORE);
startService(intent);//启动服务
break;
case R.id.btnStopFore:
//设置intent.action的值为Constant.ACTION_STOP_FORE
intent.setAction(Constant.ACTION_STOP_FORE);
startService(intent);
break;
case R.id.btnStopService:
stopService(intent);//停止服务
break;
}
}
步骤2、在src/com.tarena.exer12_01包下创建MyService.java该类继承自Service类。关键代码如下所示:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String action=intent.getAction();
if(Constant.ACTION_FORE.equals(action)){
Log.i(tag,"startForeground");
Intent foreIntent=new Intent();
foreIntent.setClass(this, MainActivity.class);
PendingIntent pintent=PendingIntent.getActivity(
this, 0, foreIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification noti=new Notification(
R.drawable.icon,"notification",System.currentTimeMillis());
//将此通知放到通知栏的"Ongoing"即"正在运行"组中

上一页  1 2 3 4 5 6 7  下一页

Tags:android 进程 优先级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接