我有一个简单的Google App Engine后端和一个简单的Android应用程序,我想要从Android App到服务器进行经过身份验证的请求.我读到了关于Google Cloud Endpoints的内容,即使它是一个非常好的API,我觉得这对我想做的事情有点过分.我只想做一个经过身份验证的HTTP请求并获取响应文本.
GET myappid.appspot.com/api/user
Run Code Online (Sandbox Code Playgroud)
应该回答:
Hello john.doe
Run Code Online (Sandbox Code Playgroud)
如果用户john.doe@gmail.com做了请求.
我创建了一个新的App Engine项目:
WEB_CLIENT_ID=123456789012.apps.googleusercontent.com
Run Code Online (Sandbox Code Playgroud)
并注册了一个Android应用程序("直接从Android访问API"):
package name : com.myappid
debug SHA1 fingerprint: 3a:e1:05:17:15:54:c6:c7:9b:ef:19:74:ae:5b:f7:0f:c3:d5:45:9d
Run Code Online (Sandbox Code Playgroud)
而这创造了
ANDROID_CLIENT_ID=123456789012-9f4sd525df3254s3d5s40s441df705sd.apps.googleusercontent.com
Run Code Online (Sandbox Code Playgroud)
application: myappid
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /api/.*
secure: always
script: api.APP
libraries:
- name: webapp2
version: latest
- name: pycrypto
version: latest
Run Code Online (Sandbox Code Playgroud)
import webapp2
from google.appengine.api import users
from google.appengine.api import oauth
class GetUser(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
self.response.headers['Content-Type'] = …
Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个具有以下需求的Android应用程序:
工作线程在服务中启动.此线程执行一些处理,需要从主Activity调用,并为同一个Activity提供一些异步答案.
从Activity调用服务很容易(IBinder的东西)
我现在的问题是关于服务回调的正确实现.
我首先要在Activity中添加一个android.os.Handler并在MyActivity.handleMessage(Message)中处理线程的anwers,但是这需要我给这个处理程序引用该服务.那么,当Android OS因为方向改变而决定销毁/重新创建我的Activity时会发生什么?我的活动是否保持活跃,因为它在服务中被引用(间接)?如果活动被破坏/重建,那么我在服务中的Handler引用会发生什么?
我想我没有使用正确的方法从Service线程回调一个Activity,所以我想知道是否有人可以指出正确的做法.
TIA