Android AlarmManager

Sri*_*Sri 1 android

这是我的代码:

public class Alarm extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

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

        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
        intent, PendingIntent.FLAG_ONE_SHOT);

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), pendingIntent);
        Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

public final class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

通过上面的代码,我能够得到Toast.而不是Toast我希望在Dialog设置警报后出现.我也想播放声音.

有人帮帮我吗?

Com*_*are 6

您无法显示Dialog来自BroadcastReceiverService.使用Activity(也许一个使用Theme.Dialog)和调用你会得到更好的服务startActivity().

但请记住,当背景资料突然弹出活动时,用户往往真的不喜欢它.对于某些应用程序 - 闹钟,VOIP客户端等 - 用户可能没问题.