我的服务不适用于Android,为什么?

时间:2013-01-21 12:45:49

标签: java android

这是代码:

public class MyServeice extends Service 
{
    private Timer pushTimer;
    private final int NOTEF_ID = 1234;
    NotificationManager manager;

    @Override
    public IBinder onBind(Intent arg0) 
    {
        return null;
    }

    @Override
    public void onCreate() 
    {
        Log.i("MyActivity", "1");
        //pushTimer = new Timer();
        manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    }

    @Override
    public void onDestroy() 
    {
        Log.i("MyActivity", "2");
        //pushTimer.cancel();
    }

    @Override
    public void onStart(Intent intent, int startid) 
    {
        Log.i("MyActivity", "3");
        //pushTimer.schedule(new TimerTask()
        //{
        //  @Override
        //  public void run() 
        //  {
                Notification not = new Notification(R.drawable.ic_launcher, "Custom notification", System.currentTimeMillis());
                PendingIntent notIntent = PendingIntent.getActivity(this , 0, new Intent(this, MainActivity.class), 0);
                not.setLatestEventInfo(this,  "Title", "Text", notIntent);
                manager.notify(NOTEF_ID, not);
                manager.cancel(NOTEF_ID);
        //  }
        //}, 0L, 60L * 1000);
    }

}

我尝试从我的MainActivity活动类启动它(在我认为问题出现在计时器之前,但现在我对它进行评论)。 在这里开始代码:

startService(new Intent(this, MyServeice.class));

未显示Service from Service类,因此我认为Service根本没有启动。应用程序不会崩溃并开始正常运行。你能查一下我的代码吗?

3 个答案:

答案 0 :(得分:0)

你在 MyServeice

中犯了一个错误

您使用

 @Override
 public void onStart(Intent intent, int startid) 

&安培;在服务生命周期中没有onStart(..)方法

尝试此方法而不是上面的

  @Override
  public int onStartCommand(Intent intent, int flags, int startId) 

修改

&安培;第二个你需要在Manifest文件中声明服务,如:

<manifest ... >
  ...
  <application ... >
      <service android:name=".MyServeice" />
      ...
  </application>
</manifest>

有关服务的更多信息,请参阅此文档  http://developer.android.com/guide/components/services.html

答案 1 :(得分:0)

使用此方法:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {}

以下是有关服务的优秀教程:Click here !

答案 2 :(得分:-2)

问题已结束。将有关我的服务类的信息添加到清单中解决了我的问题。