当前位置: 首页 > 知识库问答 >
问题:

来自非活动类的Android通知

邵飞鸿
2023-03-14
public class MyAlarmService extends Service{
    @Override
    public IBinder onBind(Intent arg0)
    {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate()
    {
        // TODO Auto-generated method stub
        super.onCreate();
    }

    @SuppressWarnings("static-access")
    @Override
    public void onStart(Intent intent, int startId)
    {
        super.onStart(intent, startId);

        String title = "title";
        String message = "message";

      new  MainActivity().Notify(title, message);
...
public class MainActivity extends Activity {
  NotificationManager manager;
    Notification myNotication;

  @Override

    protected void onCreate(Bundle savedInstanceState) {
        manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

...
 public void Notify(String notificationTitle, String notificationMessage){
        Intent intent = new Intent("com.xxxx.app.MainActivity");

        PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 1, intent, 0);

        Notification.Builder builder = new Notification.Builder(MainActivity.this);

        builder.setAutoCancel(false);
        builder.setTicker("this is ticker text");
        builder.setContentTitle("Notification");
        builder.setContentText("Text");
        builder.setSmallIcon(R.drawable.infoicon);
        builder.setContentIntent(pendingIntent);
        builder.setOngoing(true);
        builder.setSubText("This is subtext...");
        builder.setNumber(100);
        builder.build();
        myNotication = builder.getNotification();
        manager.notify(11, myNotication);
    }

...

但我收到一条错误消息

共有1个答案

萧心远
2023-03-14

您可以通过以下方式进行同样的操作:

1)将Notify方法复制到服务中,并在需要命令以触发通知任何地方调用它,notification service需要上下文活动或服务)

2)您可以通过广播接收器从服务与活动进行通信

 类似资料:
  • 由于需求的变化,我们不得不单独从服务器上使用REST服务。我见过它的改型。但我不确定如何在DAO类中使用它而不是SQL查询。 我们已经研究了公共汽车的概念,这需要更多的返工。我们希望对代码进行最小的更改来合并此更改。 如果还有什么需要,请告诉我。 技术BL: 技术刀: 技术模型: DAO中的异步调用:

  • 我已经创建了一个片段,当点击一个按钮时,会弹出一个类似对话框的ALTERVIEW。在该视图中包括谷歌登录按钮。当我连接到firebase并在startActivityForResult之后继续执行时,我需要重写onActivityResult方法。但弹出对应的类扩展了另一个对话框类,不能重写onActivityResult方法。当要重写时,它显示方法并没有从其超类错误重写方法。如何解决这个问题。以

  • 我有一个IntentService 9:00开始,每小时重复一次。 它与创建捆绑包的AsyncTask一起工作。 IntentService必须在对话框中显示一个活动(就像Viber用于消息一样),它显示此BUNDLE中的一部分数据,并且它必须创建一个显示相同部分数据的通知。如果用户单击通知,它将启动第二个活动,显示BUNDLE中的所有数据。 问题是:IntentService完成他的工作,显示活

  • 我最近开始学习Hilt,现在它给我的头疼比快乐多,但是我喜欢挑战,所以让我们开门见山吧。 我在理解如何在非活动类中注入方面有很多问题,例如注入一个上下文或任何其他类。 到目前为止,我的大多数非活动类都是对象(单例),但由于我无法注入对象,我决定将它们转换为类。 我尝试用字段注入来注入,因为如果我用@ AndroidEntryPoint来使用构造函数注入,它会报错类必须从AppCompatActiv

  • 那么我应该做些什么来实现这个目标呢?如有任何帮助/线索,请提前感谢

  • 个人的基本情况 本人出生在一个普通家庭,自身学历很一般,并非985也并非211,就是一个差不多是三本的二本普通本科生应届毕业生。在读书期间有过一些简单的实习,也参与过一些小公司的项目,但我还是觉得自己在其它人的眼里还是很普通(所以,自己能够在今年特别不好找工作的期间被一家大厂公司给入取感到特别幸运!!!)。 思前想后,本来不想说的(被很多大厂给谢拒了),但我还是决定分享一下我的面试前面准备的过程。