public class SocketActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        Toast.makeText(SocketActivity.this, "Service is Running...", Toast.LENGTH_LONG).show();
        
        SocketTestApplication application = (SocketTestApplication) getApplication();
        application.registerReceiver();
        
        finish();
    }

}



public class MyBroadcastReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Log.v(getClass().getName(), "Loading onReceive...");
        try
        {
            if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) { 
                
                boolean isServiceRunning  = isServiceRunning(context);
                if (!isServiceRunning )
                {
                    Log.v(getClass().getName(), "isServiceRunning-->"+isServiceRunning);
                    Intent myservice = new Intent(context, SocketTestService.class); 
                    context.startService(myservice);
                }
              } 
        }
        catch (Exception e)
        {
            Log.v(getClass().getName(), e.toString());
        }
    }
    
    //检查Service状态 
    private boolean isServiceRunning(Context context) {
        ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if ("net.socket.test.service.SocketTestService".equals(service.service.getClassName())) {
                return true;
            }
        }
        return false;
    }
}


public class SocketTestApplication extends Application
{
    public void registerReceiver()
    {
        IntentFilter filter = new IntentFilter(Intent.ACTION_TIME_TICK); 
        MyBroadcastReceiver receiver = new MyBroadcastReceiver(); 
        registerReceiver(receiver, filter);
    }

}


public class SocketTestService extends Service
{
    @Override
    public IBinder onBind(Intent intent)
    {
        return null;
    }
    
    @Override 
    //Service时被调用  
    public void onCreate()  
    {  
        Log.i(getClass().getName(), "Service onCreate--->");  
        super.onCreate();  
    }
    
    @Override 
    //当调用者使用startService()方法启动Service时,该方法被调用  
    public void onStart(Intent intent, int startId)  
    {  
        Log.i(getClass().getName(), "Service onStart--->");  
        
        //添加线程接收处理....
        
        super.onStart(intent, startId);  
    }  
    
    @Override 
    //当Service不在使用时调用  
    public void onDestroy()  
    {  
        Log.i(getClass().getName(), "Service onDestroy--->");  
        super.onDestroy();  
    }  
}


更多相关文章

  1. Android(安卓)流媒体系列(二)
  2. android 在线视频播放器实现方法
  3. Android开发: 调用Camera API 创建Camera
  4. Android(安卓)Interface Definition Language (AIDL)
  5. 国内目前最全面的介绍——Android中的BroadCastReceiver
  6. android intent的常用方法
  7. Android下各文件方法获取的路径
  8. Android定制出厂默认输入法
  9. Android(安卓)webkit log定义

随机推荐

  1. Android中Service(二)
  2. Android(安卓)SurfaceView 透明和半透明
  3. Android中使用Bezier曲线
  4. Test Driven Development and GUI Testin
  5. 设置全屏
  6. 【Android】菜单功能的实现:上下文action
  7. android 输入法弹出关闭与禁用
  8. Android(安卓)NDK 学习笔记
  9. Android手势处理框架-android gesture de
  10. Android(安卓)cannot resolve constructo