runnungサービスのリストと各サービスで使用されているメモリをリストビューで表示するアプリケーションのようなタスクマネージャを開発したいと考えています。サービスで使用されているメモリ
私は、実行中のサービスが
ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> procInfos = am.getRunningServices(maxNum);
を使用して得ることができることしかし、リストビューでそれらをdislayする方法ともそれらの一つ一つが使用するメモリを取得する方法を考え出しましたか? 私はアンドロイドの初心者ですから、誰でも詳細な方法で私を説明することができたら...
私は以下を試しました。私はlogcatのサービス名etcを見ることができましたが、アプリケーションは強制終了しています。
package com.example.ServiceList;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.app.ActivityManager.RunningServiceInfo;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class ServiceListActivity extends Activity {
/** Called when the activity is first created. */
int maxNum = 5;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
this.setContentView(tv);
android.os.Debug.MemoryInfo[] mInfo;
int[] processid = null;
ActivityManager am = (ActivityManager)this.getSystemService (Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> procInfos = am.getRunningServices(maxNum);
for(int i = 0; i < procInfos.size(); i++){
tv.setText(tv.getText().toString()+ " " + "\n");
Log.v("TaskMgr Stringe", procInfos.get(i).service.toString());
Log.v("TaskMgr class name", procInfos.get(i).service.getClassName());
processid[i]=procInfos.get(i).pid;
String s = " "+processid[i];
Log.v("TaskMgr process id",s);
Log.v("TaskMgr process memory", am.getProcessMemoryInfo(processid[0]);
}
mInfo = am.getProcessMemoryInfo(processid);
int dp= mInfo[0].dalvikPss;
String s1= " " + dp;
tv.setText(tv.getText().toString()+ " " + s1);
}
}
Sahiti D、答えをマークするのを忘れないでください! – JoxTraex
あなたのお返事ありがとうございました.. RunningServicesInfoを見て、私が解決策を見つけるのを助けました.. – DSP