Android的设置报警 - 提醒应用 [英] set Android alarm - Reminder app

查看:278
本文介绍了Android的设置报警 - 提醒应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我按照<一href=\"http://www.techrepublic.com/blog/software-engineer/use-androids-alarmmanager-to-schedule-an-event/\"相对=nofollow>这个例子来设置报警。

这是在 MainActivity 类Droidgap扩展

This is the MainActivity class extends with Droidgap

@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" }) public class MainActivity extends DroidGap {
//CordovaWebView cwv;
final static public long ONE_SECOND = 1000;
final static public long TWENTY_SECONDS = ONE_SECOND * 20;
public PendingIntent pi;
public BroadcastReceiver br;
public AlarmManager am;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);      

    WebView webView =new WebView(this);
    //enabling javascript call to native code
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setClickable(true);
    //Give name to interface class, "Reminder" will call through javascript
    webView.addJavascriptInterface(new MainActivity(), "Reminder");

    webView.loadUrl("file:///android_asset/www/index.html");
     setContentView(webView);        

}

这做工精细,其设定报警及消防得当,

This work fine, its set alarm and fire properly,

 @Override
public void onStart(){
    super.onStart();
    setup();
am.set( AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 
            TWENTY_SECONDS, pi ); //This code works
}   

虽然我尝试调用另一个方法有通过JavaScript其给予同样的NullPointerException code,这是我的JavascriptInterface,

While i try to invoke another method have same code through javascript its give NullPointerException, This is my JavascriptInterface,

 @JavascriptInterface
public void showToast(String mssg) {

     Log.v("AlrmMNG", am.toString());//Even this log is not working
        am.set( AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 
                TWENTY_SECONDS, pi );

Log.v("Alarm end", "Alarm set");
}

这是在 logcat的

03-05 12:25:58.330: E/AndroidRuntime(3444):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
03-05 12:55:59.710: W/System.err(3640): java.lang.NullPointerException
03-05 12:55:59.710: W/System.err(3640):     at com.agrando.reminder_level1.MainActivity.showToast(MainActivity.java:67)
03-05 12:55:59.710: W/System.err(3640):     at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
03-05 12:55:59.720: W/System.err(3640):     at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)
03-05 12:55:59.730: W/System.err(3640):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-05 12:55:59.730: W/System.err(3640):     at android.os.Looper.loop(Looper.java:136)
03-05 12:55:59.730: W/System.err(3640):     at android.os.HandlerThread.run(HandlerThread.java:61)
03-05 12:55:59.830: I/chromium(3640): [INFO:CONSOLE(25)] "Uncaught Error: Error calling method on NPObject.", source: file:///android_asset/www/index.html (25)

我在几个不同的方法,但同样的结果尝试这一点。(我没有在这里添加设置()code,你可以从上面的链接中找到它。)请帮助**结果
*
这里是链接到项目文件 * 的**

I tried this in several different methods but same result.( I didn't add setup() code in here, you can find it from link given above.) Please help **
*
Here is the link to project files ***

推荐答案

上午实例 AlarmManager 你忘记使用前初始化之前,这样做的:

am instance of AlarmManager is null before you forget to initialize it before using so do it as:

am=(AlarmManager)MainActivity.this.getSystemService(Context.ALARM_SERVICE);

这篇关于Android的设置报警 - 提醒应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆