سؤال

حسنًا ، لقد جربت مثالين على جهاز الإنذار- واحد من موقع Commonsware ، وواحد من موقع Manning. الرمز الذي أعمل معه حاليًا هو من موقع Manning: [http://unlocking-droid.googlecode.com/svn/chapter8/trunk/simplealarm//20101

هناك فئتان ، الإنذار و generatealarm. أي شخص لديه أي فكرة لماذا لن يتم عرض الخبز المحمص في المحاكي؟ كنت أفكر في أن ذلك كان لأنني موجود في المنطقة الزمنية الشرقية ويستخدم UTC ، لكنني أعجبت بأشياء مختلفة ولا يبدو أن أيًا منها يعمل.

public class GenerateAlarm extends Activity {

Toast mToast;

@Override
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    Button button = (Button) findViewById(R.id.set_alarm_button);
    button.setOnClickListener(this.mOneShotListener);
}

private OnClickListener mOneShotListener = new OnClickListener() {

    public void onClick(View v) {

        Intent intent = new Intent(GenerateAlarm.this, AlarmReceiver.class);

        PendingIntent appIntent = PendingIntent.getBroadcast(GenerateAlarm.this, 0, intent, 0);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
       // calendar.add(Calendar.MINUTE, 1);
        calendar.add(Calendar.SECOND, 10);

        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), appIntent);

        if (GenerateAlarm.this.mToast != null) {
            GenerateAlarm.this.mToast.cancel();
        }
        GenerateAlarm.this.mToast = Toast.makeText(GenerateAlarm.this, R.string.alarm_message, Toast.LENGTH_LONG);
        //GenerateAlarm.this.mToast.show();
    }
};

}

public class AlarmReceiver extends BroadcastReceiver {

public void onReceiveIntent(Context context, Intent intent) {
    Toast.makeText(context, R.string.app_name, Toast.LENGTH_SHORT).show();
}

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

}
}
هل كانت مفيدة؟

المحلول

عليك إضافة الخبز المحمص في onReceived الطريقة التي يجب أن تضيف فيها معالجة القصد المستلمة.

@Override
public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, R.string.app_name, Toast.LENGTH_SHORT).show();
}

onReceiveIntent ليست طريقة مستقبل البث

public public void onReceive (سياق السياق ، نية النية)

منذ: API المستوى 1 ، يتم استدعاء هذه الطريقة عندما يتلقى Broadcastreceiver بث نية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top