запуск / остановка службы несколько раз не работает

1

Я пишу простое сервисное приложение, ниже приведен код Activity and Service.., когда я вызываю startService() и stopService() его работоспособность за один раз, в моем случае он должен давать уведомление..из следующего раза вперед, если снова вызов startService(), а stopService() не дает желаемых результатов...

---------- это мой класс активности -------------

    package com.mypack.serviceex;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;

    public class serviceex extends Activity implements Button.OnClickListener{
        /** Called when the activity is first created. */
        Button bt1,bt2;
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            bt1 = (Button) findViewById(R.id.Button01);
            bt2 = (Button) findViewById(R.id.Button02);

            bt1.setOnClickListener(this);
            bt2.setOnClickListener(this);


        }
        @Override
    public void onClick(View v) {
        if( v == bt1)
        {
            Intent i = new Intent(serviceex.this,myservice.class);
            Log.i("err","onClick(View v....");
            startService(i);
        }
        else if(v == bt2)
        {
            Intent i = new Intent(serviceex.this,myservice.class);
            Log.i("err","else if(v == bt2)........");
            stopService(i);
        }

    }
}

--------- это мое обслуживание -------------

package com.mypack.serviceex;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;


public class myservice extends Service
{

    private NotificationManager nmgr;
    public void onCreate()
    {
        super.onCreate();
        nmgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Log.i("err","onCreate..........");
        Thread th = new Thread(null,new incls(),"service...");

    }
    public void onStart(Intent intent,int sid)
    {
        super.onStart(intent, sid);
        Log.i("err","onStart........");
    }
    public void onDestroy()
    {
        super.onDestroy();
        Log.i("err","onDestroy..........");
        displayMessage("Stopping Service");

    }
    public void displayMessage(String str)
    {
        Log.i("err.","displayMessage.....");
        Notification nf = new Notification(R.drawable.icon,str,System.currentTimeMillis());
        PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this,myservice.class), 0);
        nf.setLatestEventInfo(this, "Service...", str, pi);
        nmgr.notify(R.string.uid, nf);


    }

    private class incls implements Runnable
    {
        public void run()
        {
            Log.i("err","public void run()..........");
            System.out.println("In Runnn");
        }
    }
    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

}
  • 0
    На какой уровень API вы ориентируетесь?
  • 0
    Я забавный уровень 2.1
Теги:
service

1 ответ

0

Ни один из ваших методов не относится к методам класса @Override. Вы должны записать их с помощью @Override. Кроме того, в 2.1 вы должны использовать onStartCommand() вместо onStart(). Также обратите внимание, что вызов startService() несколько раз вызовет только onCreate()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню