Tôi đang triển khai mã sau, trong đó tôi muốn bắt đầu dịch vụ bằng cách sử dụng bộ thu phát sóng. Các bánh mì nướng trong máy thu phát sóng đang làm việc tốt nhưng dịch vụ không thực hiện. Có ai cho tôi biết tôi đã đi sai không?Dịch vụ khởi động Android sử dụng bộ thu phát sóng
MyReceiver.class
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
//Toast.makeText(arg0, "Service", Toast.LENGTH_LONG).show();
Intent myIntent = new Intent(arg0,MyS.class);
arg0.startService(myIntent);
}
}
MyS.class
public class MyS extends Service {
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "Service started", Toast.LENGTH_LONG).show();
return START_STICKY;
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.p"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service android:enabled="true"
android:name=".MyS" >
<intent-filter>
<action android:name="com.test.p.MyS" >
</action>
</intent-filter>
</service>
<receiver android:enabled="true"
android:name=".MyReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>
</manifest>
Bạn nên đăng ký chương trình phát sóng để nhận cập nhật và hủy đăng ký khi không sử dụng hoạt động. \t \t 'super.registerReceiver (mLoggedOutReceiver, new IntentFilter (LOG_OUT_ACTION));' – nesimtunc
Tôi đã thử cả hai cách..đăng ký trong tệp kê khai android và trong lớp Dịch vụ vẫn chưa bắt đầu. Bạn có thể gửi mã mẫu hoặc liên kết về cách thực hiện việc này không? – Spike
Câu trả lời có phù hợp với bạn không? http://stackoverflow.com/questions/4641712/starting-service-from-broadcastreceiver –