Android:week 12总结 内容观察者、广播、服务
16lz
2021-01-23
目录
Monday
1.内容观察者
2.广播1
Tuesday
1.广播2
2.服务
Monday
1.内容观察者
MainActivity:
package cn.rjxy.myobserver;import androidx.appcompat.app.AppCompatActivity;import android.database.ContentObserver;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.util.Log;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Uri uri = Uri.parse("content://cn.rjxy.providertest/info"); getContentResolver().registerContentObserver(uri, true, new TestObserver(new Handler())); } private class TestObserver extends ContentObserver{ public TestObserver(Handler handler){ super(handler); Log.d("***", "TestObserver is created"); } public void onChange(boolean changed){ super.onChange(changed); Log.d("***", "数据发生变化"); } } public void onDestroy(){ super.onDestroy(); getContentResolver().unregisterContentObserver(new TestObserver(new Handler())); }}
2.广播1
MainActivity:
package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity { private TestReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); receiver = new TestReceiver();//实例化 IntentFilter filter = new IntentFilter("Hello, android."); filter.setPriority(100); registerReceiver(receiver, filter); } protected void onDestroy(){ super.onDestroy(); unregisterReceiver(receiver); //unregisterReceiver(reciever2); } public void click(View view){ Intent intent = new Intent("Hello, android."); //sendBroadcast(intent); sendOrderedBroadcast(intent, null); intent.setAction("Hello, world."); //sendBroadcast(intent); sendOrderedBroadcast(intent, null); }}
TestReceiver:
package com.example.myapplication;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class TestReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent){ Log.d("***", "接收到信息的广播"); Log.d("***", intent.getAction()); }}
Tuesday
1.广播2
新加一个java文件,SecondReceiver
package com.example.myapplication;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class SecondReciever extends BroadcastReceiver { public void onReceive(Context context, Intent intent){ Log.d("###", "接收到信息的广播"); Log.d("###", intent.getAction());// abortBroadcast();// Log.d("###","终止广播"); }}
值越大 优先级越高
2.服务
MainActivity:
package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view){ switch (view.getId()){ case R.id.start: Intent intent = new Intent(MainActivity.this, MyService.class); startService(intent); break; case R.id.close: Intent intent1 = new Intent(MainActivity.this, MyService.class); stopService(intent1); break; } }}
MyService:
package com.example.myapplication;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.util.Log;public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented"); } @Override public void onCreate(){ super.onCreate(); Log.d("***", "oncreate"); } public void onDestroy(){ super.onDestroy(); Log.d("***", "onDestroy"); } public int onStartCommand(Intent intent, int flag, int startId){ Log.d("***", "onStartCommand"); return super.onStartCommand(intent, flag, startId); }}
更多相关文章
- android获取短信内容
- android 设置线程优先级 两种方式
- TextView 内容居中
- Android TextView解析HTML内容
- Android手机开发——向SD卡上的文件追加内容
- Android TextView内容设置超链接、颜色、字体
- Android原生AlertDialog修改标题,内容,按钮颜色,字体大小等
- android把字符串内容保存到指定路径
- Android中内容提供者ContentProvider实现数据库增删改查