使用闹钟管理器广播数据

3

我想使用Alarm Manager将数据发送到我的parse SDK数据库。

没有Alarm Manager,我也能够发送数据。

我的下面的代码不能正确工作,因为parse SDK数据库没有显示更新的数据。

这是我的代码:

Main Activity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.create_todo);
        setTitle(R.string.create_todo);
        alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(this, AlarmReceiver.class);
        alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

        alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                AlarmManager.INTERVAL_FIFTEEN_MINUTES,
                AlarmManager.INTERVAL_FIFTEEN_MINUTES, alarmIntent);
}

AlarmReceiver.java

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        MyAsyncTask asyncTask = new MyAsyncTask();
        asyncTask.execute(new String[]{});
    }


    class MyAsyncTask extends AsyncTask<String,Void,String>
    {

        @Override
        protected String doInBackground(String... params) {
            try {
                ParseObject parseObject = new ParseObject("Todo");
                parseObject.put("name", "abc");
                parseObject.save();
            }
            catch(ParseException e)
            {
            }
            return null;
        }
    }
}

好的,那么具体是什么出了问题?你是否收到错误提示,还是什么都没有发生? - Bono
什么都没发生...我没有收到任何错误或异常......新数据没有添加到数据库中 - ojas
ParseExceptioncatch 中添加一些记录器,以防它抛出错误。 - Barun
1个回答

1

AndroidManifest.xml文件中注册您的广播。

尝试以下代码:

alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + AlarmManager.INTERVAL_FIFTEEN_MINUTES , AlarmManager.INTERVAL_FIFTEEN_MINUTES, pIntent); 

从上面的代码中,将会发生以下事情。

第一次广播将在15分钟后触发。然后每隔15分钟触发一次。


我已经使用了你的代码并在Android清单文件中注册了我的广播,但仍然无法正常工作。 - ojas
你的代码可以运行了...之前在 Android Manifest 文件中添加时犯了一些错误!!!谢谢。 - ojas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接