0

我刚刚进入 Android 开发,我有一个关于接收器类和活动类之间通信的问题。我对 JAVA 和 Android 很陌生,所以我希望我听起来不会太愚蠢。我正在开发一个应用程序,在该应用程序中截获一条 SMS 消息,然后根据该 SMS 的各种元素,一旦将其保存到收件箱,我可能会删除它。我有一个拦截 txt 消息的接收器类,我现在还可以使用按钮从我的收件箱中删除带有活动类中的代码的消息。我遇到的问题是在接收器类和删除消息的代码所在的活动类之间进行通信。我尝试将该代码直接放入接收器类,但我相信你们中的大多数人已经知道 BroadcastReceiver 类没有 t 似乎支持我需要删除消息。我一直在寻找这个问题的答案一段时间,但一直找不到任何东西。老实说,如果我看到它,我不确定我是否对 JAVA 和 Android 有足够的了解,甚至无法识别解决方案。

4

2 回答 2

0

您可以使用 IntentService 实现处理消息逻辑。当您的接收者收到新的传入消息时,启动 IntentService 传递带有消息数据的意图。

接收者

onReceive(Context context, Intent intent) {
    //Setup Intent
    Intent i = new Intent(context, MyIntentService.class);
    i.setAction(MyIntentService.HANDLE_MESSAGE);        
    //Pass data to intent
    i.putExtra(MyIntentService.MESSAGE_DATA, data);
    //Start Intent Service          
    context.startService(i);
}

我的意图服务

onHandleIntent(Intent i){
    String action = i.getAction();
    if(action != null && action.equals(MyIntentService.HANDLE_MESSAGE){
        //Get data and implement message logic
    }
}

希望能帮助到你。

于 2012-10-04T16:58:39.457 回答
0

如果您需要在没有界面的情况下完成工作,请查看创建一个Service,如果您需要用户界面,只需启动一个Activity

您可以使用接收者方法的Context参数来启动一个新的服务/活动onReceive

您可以使用Extras在上下文之间传递参数。因此,您可以额外添加消息 ID 或整个消息,并将其传递给您的服务/活动并在那里处理。

于 2010-07-14T22:04:46.383 回答