2

こんにちは皆さん、intおよびstringタイプのいくつかのパラメーターとともに、サービスからインテントを受信するアクティビティにブロードキャストレシーバーを実装するにはどうすればよいですか?

アップデート:

私はアクティビティの下にこれを持っています:

 private BroadcastReceiver ReceivefrmSERVICE = new BroadcastReceiver(){

    @Override
    public void onReceive(Context context, Intent intent) {

        Toast.makeText(context, "IN DA BroadCASTER",
                Toast.LENGTH_LONG).show();

    }

   };

チェックされたボタンがチェックされたときに別のアクティビティからのイベントで呼び出されるサービスの関数の下にこれがあります:

 public void switchSpeaker(int hr, int min){

       Toast.makeText(Server.this, hr +" , " +min, Toast.LENGTH_LONG).show();

       Intent intent = new Intent(this, andRHOME.class);
       //intent.putExtra("sendMessage","1");
        startActivity(intent);
        /*PendingIntent pi = PendingIntent.getService(Server.this, 0, myIntent, 0);
        AlarmManager almmgr = (AlarmManager) getSystemService(ALARM_SERVICE);
        Calendar cldr = Calendar.getInstance();
        int min1 = cldr.get(Calendar.MINUTE);
        cldr.setTimeInMillis(System.currentTimeMillis());
        cldr.add(Calendar.SECOND, 30);
        almmgr.set(AlarmManager.RTC_WAKEUP, cldr.getTimeInMillis(), pi);*/
    }

しかし、そのクラッシュ?、何をすべきか?

4

2 に答える 2

10
BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {         
       // DO YOUR STUFF
    }
}

IntentFilter filter = new IntentFilter();

onResumeで:(フォアグラウンドにいる間だけ受け取るように)

filter.addAction(/* the action you want to receive */);
registerReceiver(receiver, filter);

onPauseで:(trycatchは、2回呼び出された場合の登録解除のバグを修正することです)

try {
    unregisterReceiver(receiver);
} catch (IllegalArgumentException e) {
    if (e.getMessage().contains("Receiver not registered")) {
        // Ignore this exception. This is exactly what is desired
        Log.w(TAG,"Tried to unregister the reciver when it's not registered");
    } else {
        // unexpected, re-throw
        throw e;
    }
}
于 2012-12-14T14:05:58.000 に答える
0
 public class myActivity extends Activity {

    private BroadcastReceiver receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "Message", Toast.LENGTH_SHORT);

        }
    };
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
}


}
于 2012-12-14T14:04:00.533 に答える