0

の開始に問題がありServiceます。アプリケーションが起動する前にクラッシュします。

      Intent repSer = new Intent(this,repService.class);

      startService(repSer);

これService自体です。:

public class repService extends Service {
@Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    while(true){
        Thread timer = new Thread(){
            public void run(){
                try {
                    sleep(5000);
                    // do something

                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } finally {
                    // do something
                }
            }
        };
        timer.start();  
    }   
}
}

おそらくこれは間違っていますか?私のマニフェストエントリ:

    <service android:name = ".repService"/>  
  </application> 
4

2 に答える 2

1

あなたは常にwhileをループし、タイマーを内部に持つ新しいスレッドを開始しています。おそらくスレッドでオーバーロードしています。while()ステートメントがループできるのと同じくらい速く、別のスレッドを作成して開始します。

于 2012-06-12T14:38:53.380 に答える
0

このコードを実行しようとするとjava.lang.OutOfMemoryError 、ループが中断することはないので、確実に取得できます。

これが、アプリケーションがクラッシュする主な理由です。

<service android:name=".repService" />また、マニフェストで定義していることを確認してください

マニフェストは次のようになります

ここに画像の説明を入力してください

于 2012-06-12T14:51:31.877 に答える