android提醒程序,设置Android闹钟 - 提醒应用程序

该博客讨论了在Android应用中,一个基于DroidGap的MainActivity如何通过JavaScriptInterface与JavaScript进行交互来设置提醒和警报。作者遇到的问题是,当尝试通过JavaScript调用showToast()方法时,出现了NullPointerException。这个问题出现在AlarmManager的设置代码中,尽管同一代码在onStart()方法中工作正常。Logcat显示错误发生在MainActivity的showToast()方法内,具体为am.set()调用。作者尝试了不同方法来解决这个问题,但都未能成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是MainActivity类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);

}

这项工作很好,它集报警及消防适当延长,

@Override

public void onStart(){

super.onStart();

setup();

am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() +

TWENTY_SECONDS, pi); //This code works

}

虽然我尝试用别的方法必须通过相同的代码javascript其给予NullPointerException,这是我的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)

我在几个不同的方法,但同样的结果。试过这个(我没有在这里添加设置()的代码,你可以从上面的链接中找到它。 )请帮助**

*

2014-03-05

shalin

+0

'新MainActivity()'是错误不能实例活动类 –

+0

@Raghunandan - 当然可以,但我想这使用“新的测试(本)”类,但同样的结果。在测试类中我有showToast()方法。测试类扩展MainActivity –

+0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值