我从某人那里听说,在App Store,你卖的东西或用户购买的任何东西,苹果必须有30%的价格.这意味着,即使您在应用程序中打开网页并接受捐赠,Apple也必须拥有其百分比.否则,您必须重定向用户才能在应用程序之外进行此捐赠 - 例如,调用浏览器.
所以,如果这是真的,我想知道谷歌是否持有相同的政策.我在文档中找不到这个具体的答案,只是关于应用程序内购买的信息(但我认为这个场景是在应用程序内购买,但不是在应用程序本身(抱歉,如果它听起来令人困惑).
以Groupon为例.如果您购买优惠券,是否为"应用内购买"?我不相信Google会对您在那里购买的所有东西征收30%的费用,所以我只是想确保它符合他们的规则.
我正在努力的应用程序将同时从赞助商(Walgreens等)购买捐赠和优惠券.如果我通过WebView执行此操作是否可以,或者我是否必须实际调用浏览器?
对不起,如果我的"应用内购买"概念模糊不清.
非常感谢有关此主题的任何信息.
编辑:
根据我的理解,应用内购买(适用于Google和Apple)就像您用来处理这些付款的API.我觉得令人困惑的是,例如,在Apple的应用程序内购买指南中:
那么,这是否意味着我不能使用Apple的应用程序内购买来销售我的书(但可以在应用程序中打开我的电子商务网站并将其出售),或者我不能在我的应用程序中销售我的书?我知道这可能听起来像一个愚蠢的问题,但对我来说似乎并不那么清楚.
我必须为这个应用程序实现一个功能,它包括一个Activity和一个Service在后台工作(它实现Service,而不是IntentService).
我在互联网上经历了一些应该工作的教程,他们都使用了LocalBroadcastManager,顺便说一句是Android推荐的:
如果您不需要跨应用程序发送广播,请考虑使用此类
LocalBroadcastManager而不是下面描述的更一般的工具.
我真的失去了一天,找出问题,为什么它对我不起作用:它只有在我使用时才有效Context.sendBroadcast().而Context.registerReceiver()不是LocalBroadcastManager方法.
现在我的应用程序正在运行,但我觉得我反对最佳做法,我不知道为什么.任何想法为什么会发生?
编辑:
在我写完这个问题后,我进一步研究了这个问题.LocalBroadcastManager通过Singleton工作,我们应该调用LocalBroadcastManager.getInstance(this).method().我记录了两个实例(在Activity和中Service)并且它们具有不同的内存地址.现在我来到了另一个问题,应该不是一个Service具有相同Context的Activity调用它?从这篇文章中,一个服务在主线程上运行,因此我认为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) 我有一个具有以下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中添加或设置这些参数?
所以,我的应用程序从/向我的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)
它显然有的地方.我尝试将其更改onEvent为onEventMainThread我的MainActivity,但没有成功.这是非常令人沮丧的,因为我即将发布应用程序,现在我无法解决这个问题.
有任何想法吗?
我有一个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中实现.
也许我找不到合适条款的答案.如果有人能指出我在哪里理解它,我将非常感激.