这是代码:
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根本没有启动。应用程序不会崩溃并开始正常运行。你能查一下我的代码吗?
答案 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)
问题已结束。将有关我的服务类的信息添加到清单中解决了我的问题。