Android(安卓)ACTION_TIME_TICK BroadcastReceiver处理
/** 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();
}
}
更多相关文章
- Android(安卓)流媒体系列(二)
- android 在线视频播放器实现方法
- Android开发: 调用Camera API 创建Camera
- Android(安卓)Interface Definition Language (AIDL)
- 国内目前最全面的介绍——Android中的BroadCastReceiver
- android intent的常用方法
- Android下各文件方法获取的路径
- Android定制出厂默认输入法
- Android(安卓)webkit log定义