当前位置: 代码迷 >> Android >> 从MainActivity中起步一个Service,为什么没有反应
  详细解决方案

从MainActivity中起步一个Service,为什么没有反应

热度:4   发布时间:2016-04-28 02:17:43.0
从MainActivity中启动一个Service,为什么没有反应?
从MainActivity中启动一个Service,为什么没有反应?
代码如下,想实现点MainActivity中的Button后,启动Service(先显示一个Toast.show,然后定时发消息“您有新订单!"),但运行以后,点button后似没有任何反应,请问代码哪里不对?

public class MainActivity extends Activity {
private NotificationManager notificationManager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button b1=(Button)findViewById(R.id.button1);

        b1.setOnClickListener(new OnClickListener(){
         public void onClick(View v){
         Intent intent=new Intent(MainActivity.this,OrderService.class);
         startService(intent);
         }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
  
    }
    
    @Override
    protected void onDestroy(){
     super.onDestroy();
     Intent intent=new Intent(MainActivity.this,OrderService.class);
     stopService(intent);
    }

}

public class OrderService extends Service{
private boolean threadDisable;
private NotificationManager notificationManager;

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

@Override
public void onCreate(){
super.onCreate();
notificationManager=(NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);

Toast toast=Toast.makeText(getApplicationContext(), "Hello, world",Toast.LENGTH_LONG);
toast.show();

new Thread(new Runnable(){
@Override
public void run(){
while(!threadDisable){
try{
         Notification notification1=new Notification();
         notification1.icon=R.drawable.ic_launcher;
         notification1.tickerText="您有新订单!";
         PendingIntent intent=PendingIntent.getActivity(OrderService.this,0, new Intent(OrderService.this,MainActivity.class), 0);
         notification1.setLatestEventInfo(OrderService.this, "通知", "您有新订单", intent);
notificationManager.notify(0,notification1);
Thread.sleep(60000);
}catch(InterruptedException e){
}
}
}
}).start();
}

@Override
public void onDestroy(){
super.onDestroy();
this.threadDisable=true;
}
}

------解决思路----------------------
service注册了么?
------解决思路----------------------
首先注册services,然后debug下oncreate里面
  相关解决方案