以下は、サービス、アクティビティ、放送受信機の例です。アクティビティとは、サービスを変更する設定です。ブロードキャスト受信機は、設定および更新サービスの変更を待ち受ける。 learner2learnerアンドロイド放送受信機の使い方
public class xService extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
public static void setEnableNotification(int command) {
Log.i("EnableNotification","Updated");
if (command == 0)
enableNotification = true;
...
}
}
以下の方法は、ブロードキャストを送信し活動の一部です:
@Override
protected void onCreate(Bundle savedInstanceState) {
....
IntentFilter filter = new IntentFilter();
filter.addAction(NotifyServiceReceiver.ACTION);
registerReceiver(receiver,filter);
}
final String ACTION="broadcast_settings";
public void onClick(View view) {
Intent intent = new Intent(ACTION);
switch (view.getId()) {
case R.id.switchNotification:
if(switchNotification.isChecked()==true)
{
intent.putExtra("EnableNotification", 0);
Log.i("Security365","Notification is enabled.");
}
else if ....
sendBroadcast(intent);
break;
}
下の部分は、私の放送受信機である:
public class xReceiver extends BroadcastReceiver {
final String ACTION="broadcast_settings";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(ACTION)){
int enableNotification = intent.getIntExtra("EnableNotification", 0);
if (enableNotification == 0)
Serurity365Service.setEnableNotification(0);
...
}
}
}
Mainfest
<receiver android:name=".xReceiver" android:enabled="true"></receiver>
Log.iがonReceiveに追加され、動作しません。 – Milan
if(enableNotification == 1) – Milan
'if(int.getAction()。equals(ACTION)){'の前にLog.iを追加しましたか? – ccheneson