流程管理

简介

在本文中,您将学习如何在被称为“任务管理器”的示例应用程序中使用 Tizen 应用程序和 SystemInfo API。 这篇文章显示如何:

  • 显示运行的应用程序的列表
  • 终止选定的应用程序
  • 监视系统和其他应用程序使用的资源
  • 确定电池电量水平

先决条件

  使用任务管理器示例应用程序,您需要在 config.xml 文件中启用 tizen、systeminfo 和应用程序的功能,并将 jQuery 更新到版本 1.8.1 和 jQuery 移动式更新到到版本 1.2.0。

正在运行的应用程序列表

有时候用户有必要知道当前正在运行的应用程序,所以此示例演示如何获取在设备上运行的所有应用程序的列表。 若要获得此列表,您需要使用 Tizen 应用程序 API。 此 API 还提供方法来访问其他应用程序管理功能,如获取已安装应用程序的列表,处理的应用程序生命周期等。 有关应用程序 API 的详细信息可以在 Tizen 文件中找到。 该方法用于获取正在运行的应用程序的列表,如下所示:

void getAppsContext(ApplicationContextArraySuccessCallback successCallback,optional ErrorCallback? errorCallback);

该示例应用程序使用一个UL列表,显示所有正在运行的应用程序。 下面的方法演示如何创建一个列表项:

  var makeListItem = function(name, icon, id) {
          返回 "
  • "
    + "
    + icon
    TranslateApiExceptionMethod: Translate()Message: The Azure Market Place Translator Subscription associated with the request credentials has zero balance.message id=0728.V2_Rest.Translate.F2E313C
    + name
    + "";
    };

      这是一个简单的方法,它返回 HTML 列表项。 它使用应用程序的名称、 路径的应用程序图标和应用程序的索引号。 获取所有正在运行的应用程序的列表的方法的执行如下所示:

    getRunningAppsList : function() {
      / /将用作关闭
      var that = this;
      var hMakeListItem = makeListItem;
      var hContainer = container;
      tizen.application.getAppsContext(function(contexts) {
              TranslateApiExceptionMethod: Translate()Message: The Azure Market Place Translator Subscription associated with the request credentials has zero balance.message id=0340.V2_Rest.Translate.ED36142
              hContainer.html('');
              var appInfo, item;
              ( var i = 0; i < contexts.length; ++i) {
                     //获取关于应用程序的信息
                     appInfo = tizen.application.getAppInfo(contexts[i].appId);
                     //如果它是应用程序,则应该显示 (例如,在菜单中) 以创建条目并和追加到列表中
                     if(appInfo.show) {
                             item = hMakeListItem(appInfo.name, appInfo.iconPath, contexts[i].id);
                             hContainer.append(item);
                     }
              }
              hContainer.listview('refresh');
              //在用户触摸条目时终止选定的应用程序
              hContainer.find('li').unbind().bind({
                     click : function(event) {
                             var id = this.getAttribute('data-app-id') ;
                             that.killApp(id);
                     }
              });
      }, function() {
              console.log("getAppsContext() error");
      });
    }

    此方法获取所有正在运行的应用程序列表,但只是把在菜单中可见的应用程序放在列表中供显示。 它还添加了一个方法来处理用户的选择,即要终止选定的应用程序。

    终止选定的应用程序

    要杀死带有给定上下文 id 的应用程序,可以使用下面的方法:

    killApp : function(contextId) {
      / /使关闭刷新正在​​运行的应用程序列表
      var that = this;
      if(confirm("Are you sure to exit this app?")) {
              tizen.application.kill(contextId, function() {
                     that.getRunningAppsList();
              }, function() {
                     console.log("killApp() error");
              });
      }
    }

     

    提示:要传递对象功能以在事件处理程序中使用,您需要使用闭包的功能。 你可以在许多教程中阅读更多有关闭包的信息,在互联网上很容易找到。

     

    检查系统性能

    要检查系统性能,你可以使用 Tizen 的 SystemInfo API。 它允许您访问有关系统的信息,如 CPU 使用率,应用程序使用的内存和电池电量水平等。 此示例显示如何访问此信息,并向用户显示。 用于获取系统属性的值的方法是:

    void getPropertyValue(PropertyId property, SystemInfoPropertySuccessCallbacksuccessCallback, optional ErrorCallback? errorCallback);

    使用此方法之前, 你首先必须检查给定的属性是否受支持:

    boolean isSupported(PropertyId property);

    重要的是要能够跟踪对属性值的任何更改,所以 SystemInfo API 提供了下面的方法以添加一个属性值更改侦听器:

    long addPropertyValueChangeListener(PropertyId property,SystemInfoPropertySuccessCallback successCallback, optional ErrorCallback?errorCallback, optional SystemInfoOptions? options);

    有关 SystemInfo API 的详细信息可以在 Tizen 文件中找到。 本示例使用HTML 5 米标记来显示系统属性值,下面的代码演示了如何获取处理器,存储和功率计的处理程序:

    init : function() {
      processor = document.getElementById('processor');
      storage = document.getElementById('storage');
      power = document.getElementById('power');
    }

      以下方法用于获得系统信息值和添加更改事件侦听器:

    getSystemInfoValues : function() {
    / /闭包:
      var hProcessor = 处理器 ;
      var hStorage = 存储 ;
      var hPower = 电源 ;
      var hSetCpuMeter = this.setCpuMeter;
      var hSetStorageMeter = this.setStorageMeter ;
      var hSetPowerMeter = this.setPowerMeter;
      if(tizen.systeminfo.isSupported('Cpu')) {
              tizen.systeminfo.getPropertyValue (Cpu,function(property) {
                     hSetCpuMeter(property, hProcessor);
              });
              tizen.systeminfo.addPropertyValueChangeListener('Cpu', function(property) {
                     hSetCpuMeter(property, hProcessor);
              }, function() {
                     console.log('addPropertyValueChangeListener() error');
              });
      }
      if(tizen.systeminfo.isSupported('Storage')) {
              tizen.systeminfo.getPropertyValue (存储,function(property) {
                     hSetStorageMeter(property, hStorage);
              });
              tizen.systeminfo.addPropertyValueChangeListener('Storage', function(property) {
                     hSetStorageMeter(property, hStorage);
              }, function() {
                     console.log('addPropertyValueChangeListener() error');
              });
      }
      if(tizen.systeminfo.isSupported('Power')) {
              tizen.systeminfo.getPropertyValue('Power', function(property) {
                     hSetPowerMeter(property, hPower);
              });
              tizen.systeminfo.addPropertyValueChangeListener('Power', function(property) {
                     hSetPowerMeter(property, hPower);
              }, function() {
                     console.log('addPropertyValueChangeListener() error');
              });
      }
    }

      以下方法用于以检索的属性值设置米:

     

    setCpuMeter : function(cpuInfo, cpuMeter) {
      tizen.logger.info(cpuInfo.load);
      cpuMeter.value = cpuInfo.load;
    },
    
    setStorageMeter : function(storageInfo, storageMeter) {
      if(storageInfo.length > 0) {
              var main = storageInfo[0];
              storageMeter.max = main.capacity;
              storageMeter.value = main.capacity - main.availableCapacity;
      }
    },
    
    setPowerMeter : function(powerInfo, powerMeter) {
      powerMeter.value = powerInfo.level;
    }

      所示的所有方法都包含在随这篇文章提供的任务管理器示例应用程序中。

    总结

    Tizen 设备 Api 提供了功能强大的工具,用以管理应用程序的生命周期,并检查系统的性能。 它们可以很容易用于编写任务管理器等应用程序,或任何其他需要测量系统性能或提供应用程序状态信息的应用程序。   修订历史

    说明 日期
    0.9 初始版本 2012-09-28
    1.0a 在采纳 SERI 反馈后 2012-10-09

         

  • 文件附件: