多次启动/停止服务无法正常工作

我正在编写一个简单的服务应用程序,下面是Activity和Service的代码..,当我调用startService()stopService()它的工作正常,在我的情况下它必须给出通知... from下一次如果再次调用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;
    }

}

没有任何方法是@Override类方法。 您必须用annote他们@Override 。 另外,在2.1上,你应该使用onStartCommand()而不是onStart() 。 还要注意,多次调用startService()只会调用onCreate()一次

链接地址: http://www.djcxy.com/p/26215.html

上一篇: starting/stopping service multiple times not working

下一篇: AsyncTask not generic?