当前位置: 首页>>代码示例>>Scala>>正文


Scala PendingIntent类代码示例

本文整理汇总了Scala中android.app.PendingIntent的典型用法代码示例。如果您正苦于以下问题:Scala PendingIntent类的具体用法?Scala PendingIntent怎么用?Scala PendingIntent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了PendingIntent类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。

示例1: AlarmBroadcastReceiver

//设置package包名称以及导入依赖的类
package com.android.perrier1034.post_it_note.receiver

import android.app.{Notification, NotificationManager, PendingIntent}
import android.content.{BroadcastReceiver, Context, Intent}
import android.support.v4.app.NotificationCompat
import android.text.TextUtils
import com.android.perrier1034.post_it_note.db.dao.{PageStore, NoteStore}
import com.android.perrier1034.post_it_note.model.NoteRealm
import com.android.perrier1034.post_it_note.ui.PageManager
import com.android.perrier1034.post_it_note.util.AlarmUtil
import com.android.perrier1034.post_it_note.{App, R}

object AlarmBroadcastReceiver {
  val KEY_INTENT_ALARM_USUAL = "KEY_INTENT_USUAL"
  val KEY_INTENT_PAGE_ORDER = "KEY_INTENT_PAGE_ORDER"
}

class AlarmBroadcastReceiver extends BroadcastReceiver {
  override def onReceive(context: Context, receivedIntent: Intent) {
    receivedIntent.getAction match {
      case Intent.ACTION_PACKAGE_REPLACED | Intent.ACTION_BOOT_COMPLETED =>
        NoteStore.rebootAlarmsRealm()

      case AlarmBroadcastReceiver.KEY_INTENT_ALARM_USUAL =>
        val id = receivedIntent.getLongExtra(AlarmUtil.alarmIntentDataKey, -1)
        val note = NoteStore.findByIdRealm(id)
        val pageOrder = PageStore .getPageOrderById(note.parentId)
        if (note.inRubbish != 1) {
          val nm = App.getInstance.getSystemService(Context.NOTIFICATION_SERVICE).asInstanceOf[NotificationManager]
          val notif = makeNotification(note, pageOrder)
          nm.notify(id.asInstanceOf[Int], notif)
        }
        NoteStore.clearAlarmRealm(id)
      case _ =>
    }
  }

  private def makeNotification(note: NoteRealm, pageOrder: Int): Notification = {
    val in = new Intent(App.getInstance, classOf[PageManager])
    in.putExtra(AlarmBroadcastReceiver.KEY_INTENT_PAGE_ORDER, pageOrder)
    val pi = PendingIntent.getActivity(App.getInstance, 0, in, PendingIntent.FLAG_UPDATE_CURRENT)
    val builder = new NotificationCompat.Builder(App.getInstance)
    val content = if (TextUtils.isEmpty(note.checkItems)) "(check list)" else note.content
    builder
      .setSmallIcon(R.drawable.ic_launcher)
      .setTicker(content)
      .setContentText(content)
      .setWhen(System.currentTimeMillis).setAutoCancel(true)
      .setContentIntent(pi)
      .setContentTitle(if (TextUtils.isEmpty(note.title)) "No title" else note.title)
      .build()
  }
} 
开发者ID:perrier1034,项目名称:Post-it-Note,代码行数:54,代码来源:AlarmBroadcastReceiver.scala

示例2: AlarmUtil

//设置package包名称以及导入依赖的类
package com.android.perrier1034.post_it_note.util

import java.util.{Calendar, TimeZone}

import android.app.{AlarmManager, PendingIntent}
import android.content.{Context, Intent}
import com.android.perrier1034.post_it_note.App
import com.android.perrier1034.post_it_note.receiver.AlarmBroadcastReceiver

object AlarmUtil {

  val alarmIntentDataKey = "alarmIntentDataKey "
  def set(id: Long, year: Int, month: Int, date: Int) = {
    val cal = Calendar.getInstance
    cal.setTimeInMillis(System.currentTimeMillis)
    cal.setTimeZone(TimeZone.getDefault)
    cal.set(Calendar.YEAR, year)
    cal.set(Calendar.MONTH, month)
    cal.set(Calendar.DAY_OF_MONTH, date)
    cal.set(Calendar.HOUR_OF_DAY, 0)
    cal.set(Calendar.MINUTE, 0)
    val intent = new Intent(App.getInstance, classOf[AlarmBroadcastReceiver])
    intent.putExtra(alarmIntentDataKey, id)
    intent.setAction(AlarmBroadcastReceiver.KEY_INTENT_ALARM_USUAL)
    val pendingIntent = PendingIntent.getBroadcast(App.getInstance, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)
    val alarmManager = App.getInstance.getSystemService(Context.ALARM_SERVICE).asInstanceOf[AlarmManager]
    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis, pendingIntent)
  }

  def clear(noteId: Long) = {
    val intent = new Intent(App.getInstance, classOf[AlarmBroadcastReceiver])
    intent.putExtra(alarmIntentDataKey, noteId)
    val pendingIntent = PendingIntent.getBroadcast(App.getInstance, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)
    val alarmManager = App.getInstance.getSystemService(Context.ALARM_SERVICE).asInstanceOf[AlarmManager]
    alarmManager.cancel(pendingIntent)
  }
} 
开发者ID:perrier1034,项目名称:Post-it-Note,代码行数:38,代码来源:AlarmUtil.scala

示例3: Notification

//设置package包名称以及导入依赖的类
package tryp
package droid
package view

import android.support.v4.app.NotificationCompat
import android.support.v4.app.NotificationManagerCompat
import android.support.v4.app.TaskStackBuilder
import android.app.PendingIntent

class Notification(context: Context, target: Class[_], icon: Int, title: String, id: Int)
{
  var text = ""

  lazy val builder = {
    val bldr = new NotificationCompat.Builder(context)
    val sb = TaskStackBuilder.create(context)
    sb.addParentStack(target)
    sb.addNextIntent(intent)
    val pIntent = sb.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
    bldr.setContentIntent(pIntent)
    bldr.setContentTitle(title)
    bldr.setSmallIcon(icon)
    bldr
  }

  lazy val intent = new Intent(context, target)

  def setTitle(newTitle: String) = builder.setContentTitle(newTitle)

  def setText(newText: String) = {
    text = newText
    builder.setContentText(newText)
  }

  def setIcon(newIcon: Int) = builder.setSmallIcon(newIcon)

  def setProgress(values: (Int, Int)) {
    builder.setProgress(values._2, values._1, false)
  }

  def update() = manager.notify(id, builder.build)

  def cancel() = manager.cancel(id)

  def resetTime() {
    builder.setWhen(System.currentTimeMillis)
  }

  private def manager: NotificationManagerCompat = {
    NotificationManagerCompat.from(context)
  }
}

trait Notifications
{
  def createNotification(
    target: Class[_], icon: Int, title: String, id: Int = 1
  )(implicit context: Context) = {
    new Notification(context, target, icon, title, id)
  }
} 
开发者ID:tek,项目名称:droid,代码行数:62,代码来源:notifications.scala

示例4: NotificationServicesImpl

//设置package包名称以及导入依赖的类
package com.happyheal.happyhealapp.modules.notifications.impl

import android.app.{PendingIntent, NotificationManager}
import android.content.{Intent, Context}
import android.support.v4.app.NotificationCompat
import com.happyheal.happyhealapp.R
import com.happyheal.happyhealapp.commons.ContextWrapperProvider
import com.happyheal.happyhealapp.modules.notifications.{NotificationServices, NotificationServicesComponent}
import com.happyheal.happyhealapp.ui.main.MainActivity

import scala.util.Random


trait NotificationServicesComponentImpl
  extends NotificationServicesComponent {

  self: ContextWrapperProvider =>

  override lazy val notificationServices = new NotificationServicesImpl

  class NotificationServicesImpl extends NotificationServices {

    override def showDemoNotification: Unit = {
      val requestCode = 112233
      val notificationId = Random.nextInt()
      val intent = new Intent(contextProvider.application, classOf[MainActivity])
      val pendingIntent = PendingIntent.getActivity(contextProvider.application, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
      val notification = new NotificationCompat.Builder(contextProvider.application)
        .setContentTitle("Demo Notification")
        .setContentText("Demo Content")
        .setContentInfo("Demo info")
        .setContentIntent(pendingIntent)
        .setSmallIcon(R.drawable.ic_launcher)
        .setAutoCancel(true)
        .build()
      val notifyManager = contextProvider.application.getSystemService(Context.NOTIFICATION_SERVICE).asInstanceOf[NotificationManager]
      notifyManager.notify(notificationId, notification)
    }

  }

} 
开发者ID:pamu,项目名称:happyheal,代码行数:43,代码来源:NotificationServicesComponentImpl.scala


注:本文中的android.app.PendingIntent类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。