小编Teo*_*nke的帖子

Google Play/App Store应用内购买政策

我从某人那里听说,在App Store,你卖的东西或用户购买的任何东西,苹果必须有30%的价格.这意味着,即使您在应用程序中打开网页并接受捐赠,Apple也必须拥有其百分比.否则,您必须重定向用户才能在应用程序之外进行此捐赠 - 例如,调用浏览器.

所以,如果这是真的,我想知道谷歌是否持有相同的政策.我在文档中找不到这个具体的答案,只是关于应用程序内购买的信息(但我认为这个场景是在应用程序内购买,但不是在应用程序本身(抱歉,如果它听起来令人困惑).

以Groupon为例.如果您购买优惠券,是否为"应用内购买"?我不相信Google会对您在那里购买的所有东西征收30%的费用,所以我只是想确保它符合他们的规则.

我正在努力的应用程序将同时从赞助商(Walgreens等)购买捐赠和优惠券.如果我通过WebView执行此操作是否可以,或者我是否必须实际调用浏览器?

对不起,如果我的"应用内购买"概念模糊不清.

非常感谢有关此主题的任何信息.

编辑:

根据我的理解,应用内购买(适用于Google和Apple)就像您用来处理这些付款的API.我觉得令人困惑的是,例如,在Apple的应用程序内购买指南中: Apple政策 那么,这是否意味着我不能使用Apple的应用程序内购买来销售我的书(但可以在应用程序中打开我的电子商务网站并将其出售),或者我不能在我的应用程序中销售我的书?我知道这可能听起来像一个愚蠢的问题,但对我来说似乎并不那么清楚.

android app-store in-app-purchase policies google-play

14
推荐指数
2
解决办法
6196
查看次数

为什么LocalBroadcastManager不能工作而不是Context.registerReceiver?

我必须为这个应用程序实现一个功能,它包括一个Activity和一个Service在后台工作(它实现Service,而不是IntentService).

我在互联网上经历了一些应该工作的教程,他们都使用了LocalBroadcastManager,顺便说一句是Android推荐的:

如果您不需要跨应用程序发送广播,请考虑使用此类LocalBroadcastManager而不是下面描述的更一般的工具.

我真的失去了一天,找出问题,为什么它对我不起作用:它只有在我使用时才有效Context.sendBroadcast().而Context.registerReceiver()不是LocalBroadcastManager方法.

现在我的应用程序正在运行,但我觉得我反对最佳做法,我不知道为什么.任何想法为什么会发生?

编辑:

在我写完这个问题后,我进一步研究了这个问题.LocalBroadcastManager通过Singleton工作,我们应该调用LocalBroadcastManager.getInstance(this).method().我记录了两个实例(在Activity和中Service)并且它们具有不同的内存地址.现在我来到了另一个问题,应该不是一个Service具有相同ContextActivity调用它?从这篇文章中,一个服务在主线程上运行,因此我认为Context它将是相同的.

有什么想法吗?(对不起,长篇文章)

代码示例:

为MyService

public class MyService extends Service {

...

// When an event is triggered, sends a broadcast

Intent myIntent = new Intent(MainActivity.MY_INTENT);
myIntent.putExtra("myMsg","msg");
sendBroadcast(myIntent);

// Previously I was trying:
// LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(myIntent);

}
Run Code Online (Sandbox Code Playgroud)

MyActivity

public class …
Run Code Online (Sandbox Code Playgroud)

service android broadcast broadcastreceiver intentservice

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

使用参数改进POST URL

我有一个具有以下POST URL的特定Web服务:

(host)/pois/category?lat=...&long=...
Run Code Online (Sandbox Code Playgroud)

类别可以是三件事(比如说"cat1","cat2"或"cat3"),而lat和long则是用户地理位置的两倍.

由于URL被定义为注释之类的

@POST("/pois/")
Run Code Online (Sandbox Code Playgroud)

如何在URL中添加或设置这些参数?

url post android retrofit

7
推荐指数
1
解决办法
6324
查看次数

构建proj时的EventBus异常 - Subscriber类没有名为onEvent的公共方法

所以,我的应用程序从/向我的MainActivity交换消息到/从后台服务,我使用EventBus来处理它.我正在注册这两个组件

EventBus.getDefault().register(this);
Run Code Online (Sandbox Code Playgroud)

在他们的onCreates.我正在发送/接收一个活动:

EventBus.getDefault().post(new MyMessagePojo("message"));
Run Code Online (Sandbox Code Playgroud)

public void onEvent(MyMessagePojo event) { ... }
Run Code Online (Sandbox Code Playgroud)

当我将项目从AndroidStudio运行到我的测试手机时,一切正常.但是,当我生成签名的APK时,我安装了应用程序并遇到以下异常崩溃:

Subscriber class my.package.MainActivity has no public methods called onEvent
Run Code Online (Sandbox Code Playgroud)

它显然有的地方.我尝试将其更改onEventonEventMainThread我的MainActivity,但没有成功.这是非常令人沮丧的,因为我即将发布应用程序,现在我无法解决这个问题.

我已经通过这个这个,但他们都没有帮助.

有任何想法吗?

android event-bus greenrobot-eventbus

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

Android XML样式属性是否未按顺序覆盖?

我有一个TextView应该10dp在顶部和底部以及30dp左侧填充.然后我尝试了:

android:padding="10dp"
android:paddingLeft="30dp"
Run Code Online (Sandbox Code Playgroud)

这就是我在CSS中所做的.但它不起作用.

无论顺序如何,我的左边填充都是10dp.Android样式属性是否按照它们出现的顺序被覆盖?如果是的话,是否有任何优先事项清单?例如:android:padding always overrides android:paddingLeft

覆盖是CSS中的一个重要特性,可以节省大量编码,因此我想知道这是否可以在Android中实现.

也许我找不到合适条款的答案.如果有人能指出我在哪里理解它,我将非常感激.

android android-layout

2
推荐指数
1
解决办法
1165
查看次数