小编car*_*vaq的帖子

使用gradle额外属性自动增加VersionCode

我正在用gradle构建一个Android应用程序.到目前为止,我使用Manifest文件来增加versionCode,但是我想从外部文件中读取versionCode,并且取决于它是发布风格还是调试风格增加了versionCode.我尝试了额外的属性,但是你无法保存它们,这意味着下次我构建它时我得到了相同的版本代码.任何帮助将非常感谢!

project.ext{
    devVersionCode = 13
    releaseVersionCode = 1
}

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile project(':Cropper')
    compile "com.android.support:appcompat-v7:18.0.+"
    compile "com.android.support:support-v4:18.0.+"
    compile fileTree(dir: 'libs', include: '*.jar')
}

def getReleaseVersionCode() {
    def version = project.releaseVersionCode + 1
    project.releaseVersionCode = version
    println sprintf("Returning version %d", version)
    return version
}

def getDevVersionCode() {
    def version = project.devVersionCode + 1
    project.devVersionCode = version
    println sprintf("Returning version %d", version)
    return …
Run Code Online (Sandbox Code Playgroud)

android gradle build.gradle android-gradle-plugin

112
推荐指数
9
解决办法
8万
查看次数

即使屏幕关闭也开始活动

我正在尝试通过闹钟开始一项活动。PendingIntent 启动接收器,接收器启动活动。我目前的问题是活动在后台开始,无法听到警报声。Oreo 和更新的设备不推荐使用旧 SO 问题中的大多数标志。有没有人有一个很好的方法来处理这个问题?

先感谢您

报警创建:

alarmManager.setExact(AlarmManager.RTC_WAKEUP, intervalFinished, pendingIntent)
Run Code Online (Sandbox Code Playgroud)

接收者

class OnAlarmReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context, intent: Intent) {
        val intent = Intent(context, AlarmActivity::class.java)
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

        context.startActivity(intent)
    }
}
Run Code Online (Sandbox Code Playgroud)

活动:

private var wake: PowerManager.WakeLock? = null

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
    wake = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK
            or PowerManager.ACQUIRE_CAUSES_WAKEUP, "App:wakeuptag")
    wake?.acquire(10*60*1000L /*10 minutes*/)

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
        setShowWhenLocked(true)
        setTurnScreenOn(true)
    } else {
        window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                or WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                or WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                or WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                or WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON)
    } …
Run Code Online (Sandbox Code Playgroud)

android alarm android-wake-lock

3
推荐指数
1
解决办法
2477
查看次数