编写一个简单的测试程序(RemoteService), 研究Android Service/Messenger进行多进程通讯.
1. 主要实现以下目标:
1. Service在独立的进程中运行.
2. 使用Messenger实现双工异步通讯.
3. 使用Bundle实现进程间数据传输.
4. 使用HandlerThread实现Service在子线程中完成消息处理.
2. 主要代码:
(1) RemoteService\app\src\main\AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bzsample.remoteservice"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:process="com.bzsample.remoteservice.main" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MessengerService" android:process="com.bzsample.remoteservice.messagerservice"> </service> </application> </manifest>
(2) RemoteService\app\src\main\java\com\bzsample\remoteservice\MainActivity.java
public class MainActivity extends AppCompatActivity { MessengerClient mMessengerClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);