私は、アプリケーションがクラッシュログや問題を検索するために従うことができる他のメッセージを提供しないため、理解できない奇妙な問題が発生しています。Android:getSystemService(Context.ACTIVITY_SERVICE)がサービスで動作していません
私は私の活動からサービスを開始し、このサービスでは、私はエラー状態にあるプロセスの数を見つけるためにしようとしていますが、私のコードは、行
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
に到達したときにアプリが動作を停止。私は私のアプリケーションをデバッグすると、上記の行を打った後、デバッガはcleanUpPendingRemoveWindows()のActivityThread.javaファイルにナビゲートします。 "ソースコードはバイトコードと一致しません"というメッセージが表示されます。なぜこれが起こっているのか理解できません。
私のコードは次のとおりです。
import android.app.ActivityManager;
import android.app.Service;
import android.app.usage.UsageStats;
import android.app.usage.UsageStatsManager;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
public class Senddata_1 extends Service {
String TAG = "uEarn:Senddata_1";
public void find_out_process_in_error_state(){
List<ActivityManager.ProcessErrorStateInfo> processErrorStateInfos;
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
processErrorStateInfos = am.getProcessesInErrorState();
if(processErrorStateInfos != null) {
for (ActivityManager.ProcessErrorStateInfo pes : processErrorStateInfos) {
Log.e(TAG, "Process in Error state" + pes.processName);
Log.e(TAG, "Process error messga" + pes.shortMsg);
message = message + "<p>Process in Error state:" + pes.processName + ", error message:" + pes.shortMsg + "</p>\n";
}
}
return;
}
public Senddata_1() {
// TODO: Get the Filename through the intent
Log.e(TAG, "Inside service Senddata_1");
find_out_process_in_error_state();
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
// return;
}
}
ここでこのサービスを呼びますか?アンドロイドのgetSystemServiceが動作しない方法はありません。アクセス権を追加するか、メソッドを呼び出すことを忘れただけかもしれません。 –
私は、このサービスを別のアクティビティからSenddata_1という名前で呼び出しています。 – Pagar
このメソッドは、onStartCommand内でコンストラクタには使用しないでください。新しいオブジェクトを作成して直接サービスを呼び出すことはできません。この場合、コンテキストはnullになります。このような活動の中であなたのサービスを呼び出す:startService(new Intent(this、Senddata_1 .class)); –