欢迎光临散文网 会员登陆 & 注册

Andlua实现通知栏显示

2023-04-09 20:36 作者:一只很萌的小白猫  | 我要投稿

-- 导入需要用到的各种安卓类库

require "import"

import "android.app.*"

import "android.os.*"

import "android.widget.*"

import "android.view.*"

import "android.content.Intent"

import "android.app.PendingIntent"


-- 在 onCreate 函数中创建应用界面

function onCreate(savedInstanceState)

 -- 设置标题

 activity.setTitle("通知示例")


 -- 创建一个垂直方向的线性布局

 local layout = LinearLayout(activity)

 layout.setOrientation(LinearLayout.VERTICAL)


 -- 创建一个按钮控件,并设置其文本

 local button = Button(activity)

 button.setText("显示通知")


 -- 设置按钮点击事件

 button.setOnClickListener(View.OnClickListener{

  onClick = function(view)

   -- 获取 NotificationManager 服务对象

   local notificationManager = activity.getSystemService(activity.NOTIFICATION_SERVICE)


   -- 如果设备版本大于等于 O,创建一个通知渠道

   if Build.VERSION.SDK_INT >= Build.VERSION_CODES.O then

    local channel = NotificationChannel("my_channel_01", "通知渠道名称", NotificationManager.IMPORTANCE_DEFAULT)

    -- 设置通知渠道的行为属性,包括是否震动、是否有声音等

    notificationManager.createNotificationChannel(channel)

   end


   -- 创建一个 Intent,用于启动一个新的 Activity 页面

   local intent = Intent(activity, LuaActivity)

   intent.putExtra("message", "这是从通知启动的 Activity。")

   -- 创建一个 PendingIntent 对象,用于在用户点击通知时打开该 Activity 并传递额外数据

   local pendingIntent = PendingIntent.getActivity(activity, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)


   -- 创建一个 Notification.Builder 对象,用于构造通知

   local notificationBuilder = Notification.Builder(activity)

   -- 设置通知标题、内容、小图标,并将 PendingIntent 对象关联到通知中

   .setContentTitle("标题测试")

   .setContentText("这是一条通知消息。")

   .setSmallIcon(android.R.drawable.stat_notify_chat)

   -- 设置该通知为持久通知,不会在用户下拉通知栏时被移除

   .setOngoing(true)

   .setContentIntent(pendingIntent)


   -- 如果设备版本大于等于 O,将该通知与刚才创建的通知渠道关联

   if Build.VERSION.SDK_INT >= Build.VERSION_CODES.O then

    notificationBuilder.setChannelId("my_channel_01")

   end


   -- 使用 NotificationManager 发送该通知

   notificationManager.notify(1, notificationBuilder.build())

  end

 })


 -- 将按钮添加到布局中

 layout.addView(button)


 -- 将布局设置为当前 Activity 的内容视图

 activity.setContentView(layout)

end


-- 在 onResume 函数中处理 Activity 进入前台后的逻辑

function onResume()

 -- 获取启动 Activity 时传递的文本信息

 local message = activity.getIntent().getStringExtra("message")

 -- 如果文本信息不为空,使用 Toast 弹出提示框显示该文本信息

 if message then

  Toast.makeText(activity, message, Toast.LENGTH_SHORT).show()

 end

end

Andlua实现通知栏显示的评论 (共 条)

分享到微博请遵守国家法律