在我的主要活动中,我有以下代码:
EditText usernameText;
EditText passwordText;
public void sendLogin (View loginview){
Intent i = new Intent(this, NetworkService.class);
startService(i);
}
Run Code Online (Sandbox Code Playgroud)
目前,这只是向NetworkService发送一个intent,它按如下方式处理(截断):
public class NetworkService extends IntentService {
public NetworkService() {
super("NetworkService");
}
protected void onHandleIntent(Intent i) {
/* HTTP CONNECTION STUFF */
String login = URLEncoder.encode("Username", "UTF-8") + "=" + URLEncoder.encode("XXX", "UTF-8");
login += "&" + URLEncoder.encode("Password", "UTF-8") + "=" + URLEncoder.encode("XXX", "UTF-8");
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要弄清楚的是,如何将这些usernameText和passwordText值传递到NetworkService'XXX'中,但是NetworkService我想打算(没有双关语),让它处理来自不同地方的多个意图,一个来自登录,例如,使用登录令牌检索用户的一些信息.这是我的所有网络都将被包含的地方.我被告知这是Android应用程序中的最佳实践,以保持网络分离.
我的问题是:什么是这两个变量发送到的最佳方式NetworkService,以及如何,内onHandleIntent的NetworkService,我分开的代码只能做我要求它(登录,获取用户信息,获取位置数据等等)?
对不起,如果答案很简单,但我对应用程序编程很新. …
编辑此问题,以期使其更清楚。
我们有实体框架代码优先设置。为了示例目的,我简化了两个类,实际上,与“记录”类似,大约有十多个类,其中“项”是导航属性/外键。
物品类别:
public class Item
{
public int Id { get; set; }
public int AccountId { get; set; }
public List<UserItemMapping> UserItemMappings { get; set; }
public List<GroupItemMapping> GroupItemMappings { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
记录类:
public class Record
{
public int ItemId { get; set; }
public Item Item { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
this.User是每个存储库中注入的用户对象,包含在存储库库中。我们有一个包含以下代码的Item存储库:
var items = this.GetAll()
.Where(i => i.AccountId == this.User.AccountId);
Run Code Online (Sandbox Code Playgroud)
我在存储库的基础上创建了follow表达式,以轻松地对其进行过滤(以希望再次使用)。由于LINQ to实体的工作方式,我们无法使用静态扩展方法(System.NotSupportedException“ LINQ to Entities无法识别方法X,并且该方法无法转换为存储表达式。”)。
protected Expression<Func<Item, bool>> ItemIsOnAccount()
{
return item => item.AccountId …Run Code Online (Sandbox Code Playgroud) 我在这里很困惑.
如果我有一个数字,我们在这里称它为16,我想检查是否设置了一个特定的位.我会做以下事情:
if (16 & (2 ^ bitPosition) == (2 ^ bitPosition))
Run Code Online (Sandbox Code Playgroud)
对?
那么,对于bitPosition = 2,为什么该语句返回true?不应该是假的,因为在这种情况下只有bitPosition = 4是真的吗?
我的理解是:
Bit|Val
0 |1
1 |2
2 |4
3 |8
4 |16
5 |32
6 |64
7 |128
Run Code Online (Sandbox Code Playgroud)
我之前从未使用过这种东西,这令我感到困惑.