小编Mic*_*ael的帖子

如何以编程方式退出android应用程序

我找到了一些以编程方式退出Android应用程序的代码.通过在onDestroy()中调用以下任何一个代码,它会完全退出应用程序吗?

  1. System.runFinalizersOnExit(true)
    (要么)
  2. android.os.Process.killProcess(android.os.Process.myPid());

我不想在单击退出按钮后在后台运行我的应用程序.请问我可以使用这些代码中的任何一个来退出我的应用程序吗?如果可以,我可以使用哪些代码?这是退出Android应用程序的好方法吗?

android

291
推荐指数
22
解决办法
36万
查看次数

在Android上,Progressive Web Apps与本机应用程序相比具有哪些功能,反之亦然

2015年,Google推出了一种新的Android开发网络应用程序方法:渐进式网络应用程序.可以创建一个看起来像本机应用程序的应用程序,可以使用设备的硬件,如摄像头和加速度计,接收推送通知,具有启动器图标,离线工作,存储本地数据等.

在Android上,本机应用程序提供的渐进式Web应用程序不支持哪些功能,反之亦然.

firefox android google-chrome progressive-web-apps

110
推荐指数
2
解决办法
6万
查看次数

使用Android Gradle插件在编译之前运行任务

我有一个非常简单的build.gradle文件,其中包含以下内容:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.1'
    }
}

apply plugin: 'android'

android {
    buildToolsVersion "17.0.0"
    compileSdkVersion 17

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

task generateSources {
    doFirst {
        def script = "python GenerateSources.py".execute()
        script.in.eachLine {line -> println line}
        script.err.eachLine {line -> println "ERROR: " + line}
        script.waitFor()
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是generateSources在java编译开始之前运行任务.我找到了几个解决方案,如何做到这一点compileJava.dependsOn("generateSources"),但不幸的是他们给出了一个错误:

A problem occurred evaluating root project 'Android'.
> Could not …
Run Code Online (Sandbox Code Playgroud)

android gradle android-build

37
推荐指数
4
解决办法
3万
查看次数

应用内结算安全和设计问题

我有几个与Android应用内结算相关的问题:

  1. 是否可以从非市场应用程序购买?我知道这将是一个漏洞,但我没有机会发现它是否可能.

  2. 如何获得特定产品的购买状态?据我所知,它可以使用RESTORE_TRANSACTIONS请求完成,但不建议经常使用.这不是一个理论问题.我的应用程序允许用户使用应用内结算购买内容.内容可以从服务器下载,服务器必须允许内容下载仅在购买时.但是,如果没有使用Android电子市场的签名回复,则无法检查是否已购买内容.

  3. 如何从Android电子市场获取商品的价格和描述?似乎我知道答案,而且"它无法完成",但也许我错了.有可能检索物品的价格是非常有用的.

对我来说,如何解决/将要解决您的应用中的这些问题非常有趣.任何这些问题的答案将不胜感激.

security android in-app-purchase google-play

24
推荐指数
1
解决办法
3162
查看次数

如何逐行读取文件

我有一个文件在单独的行中包含文本.
我想首先显示行,然后如果我按下按钮,第二行应显示在TextView第一行,第一行应该消失.然后,如果我再次按下它,则应显示第三行,依此类推.

我应该使用TextSwitcher还是其他什么?我怎样才能做到这一点?

android readfile android-assets

18
推荐指数
2
解决办法
5万
查看次数

如何使用Kotlin中的参数进行Lazy Initialize

在Kotlin中,我可以执行不带参数的Lazy Initialization,如下所示.

val presenter by lazy { initializePresenter() }
abstract fun initializePresenter(): T
Run Code Online (Sandbox Code Playgroud)

但是,如果我在initializerPresenter中有一个参数,即viewInterface如何将参数传递给Lazy Initiallization?

val presenter by lazy { initializePresenter(/*Error here: what should I put here?*/) }
abstract fun initializePresenter(viewInterface: V): T
Run Code Online (Sandbox Code Playgroud)

kotlin

17
推荐指数
1
解决办法
6418
查看次数

Android M上配置文件GPU栏的颜色

当设置档案GPU渲染开发功能"在屏幕上吧"我曾经看到在Android棒棒糖,蓝色,紫色,红色,和橙色条所描述这里.

但在Android Marshmallow上,这些酒吧由七种不同的颜色组成:深绿色,中绿色,浅绿色,蓝色,浅蓝色,红色和橙色.

在Android M上配置GPU屏幕栏

我没有在Android开发者身上找到任何与这些颜色相关的信息.那么这些新颜色意味着什么呢?

performance android gpu android-6.0-marshmallow

15
推荐指数
1
解决办法
3564
查看次数

Android:AlertDialog导致内存泄漏

我的应用程序显示了AlertDialog一个ListView内部.一切都工作得很好然后我决定测试这个内存泄漏.运行应用程序一段时间后,我打开了MAT并生成了Leak Suspects报告.MAT发现了几个类似的泄漏:

"<system class loader>"加载的"com.android.internal.app.AlertController $ RecycleListView"的一个实例占用...

我花了很多时间寻找泄漏的原因.代码审查没有帮助我,我开始谷歌搜索.这就是我发现的:

问题5054:AlertDialog似乎通过MessageQueue中的Message导致内存泄漏

我决定检查这个bug是否重现.为此我创建了一个由两个活动组成的小程序.MainActivity是一个enrty点.它只包含一个运行的按钮LeakedActivity.后者只是AlertDialog在其onCreate()方法中显示了一个.这是代码:

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        findViewById(R.id.button).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(
                    new Intent(MainActivity.this, LeakedActivity.class));
            }
        });
    }
}

public class LeakedActivity extends Activity {
    private static final int DIALOG_LEAK = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks android-alertdialog

14
推荐指数
1
解决办法
1万
查看次数

gradle.properties使用点表示法读取属性失败

我收到一个错误,读取带有点符号的属性gradle.properties.为什么?

如果我用version而不是build.version一切都好.提前致谢.

失败案例

gradle.properties

build.version=2.0.1
Run Code Online (Sandbox Code Playgroud)

的build.gradle

apply plugin: 'java'

task testProperties << {
    println "***************** TEST **********************"
    println build.version
    println "*********************************************"
}
Run Code Online (Sandbox Code Playgroud)

执行

... $ gradle devTest
:devTest
***************** TEST **********************
:devTest FAILED

FAILURE: Build failed with an exception.

* Where:
Build file '..../build.gradle' line: 50

* What went wrong:
Execution failed for task ':devTest'.
> Could not find property 'version' on task ':build'.

* Try:
Run with --stacktrace option to get the stack …
Run Code Online (Sandbox Code Playgroud)

properties gradle

13
推荐指数
2
解决办法
2932
查看次数

是否可以在没有开课的情况下使用Mockito和Kotlin?

我们可能知道,默认情况下,Kotlin类一旦定义,它就是最终的,除非它被明确声明open.

当我们想要使用Mockito进行模拟时,这会发出挑战.我们需要明确地声明它open.有没有办法可以避免将其声明为open能够模拟它进行测试?

unit-testing mocking mockito kotlin

12
推荐指数
3
解决办法
4718
查看次数