只是将一些shell脚本转换为批处理文件,有一件事我似乎找不到......这是一个简单的命令行参数数量.
例如.如果你有:
myapp foo bar
Run Code Online (Sandbox Code Playgroud)
在壳牌:
批量生产
所以我环顾四周,要么我正在寻找错误的地方,要么我是盲目的,但我似乎无法找到一种方法来获取传入的命令行参数的数量.
是否有类似于shell的"$#"命令用于批处理文件?
PS.我发现最接近的是遍历%1s并使用'shift',但是我需要在脚本中稍后引用%1,%2等,这样就没有用了.
刚刚开始使用Robolectric,它似乎是我所需要的.但是,我在使用SharedPreferences方面遇到了一些障碍.
我有两个测试用例
Activity需要一个新的/空的sharedPreferences
Activity期望sharedPreferences中包含一些数据
对于测试用例1,测试按预期传递,所以很好:)
但是,对于测试案例2,我似乎无法找到一个很好的方法来为Robolectric提供一些虚假数据,因此Activity能够访问这些假数据.
感觉就像一个非常常见的用例,但我似乎无法弄清楚如何做到这一点!
我正在重构一些代码,以便我的应用程序每天在给定时间从网站提取数据.从我的研究来看,这似乎AlarmManager是最合适的方法.
我一直关注的教程是:http://mobile.tutsplus.com/tutorials/android/android-fundamentals-downloading-data-with-services/
到目前为止,AlarmManager并BroadcastReceiver似乎工作,然而Service似乎从来没有开始(即onStartCommand似乎没有被调用)
以下是我到目前为止的代码的重要摘要:
MyActivity.java
private void setRecurringAlarm(Context context) {
Calendar updateTime = Calendar.getInstance();
updateTime.setTimeZone(TimeZone.getDefault());
updateTime.set(Calendar.HOUR_OF_DAY, 20);
updateTime.set(Calendar.MINUTE, 30);
Intent downloader = new Intent(context, AlarmReceiver.class);
downloader.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, downloader, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// should be AlarmManager.INTERVAL_DAY (but changed to 15min for testing)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, updateTime.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent);
Log.d("MyActivity", "Set alarmManager.setRepeating to: " + updateTime.getTime().toLocaleString());
}
Run Code Online (Sandbox Code Playgroud)
AlarmReceiver.java
public class AlarmReceiver extends BroadcastReceiver { …Run Code Online (Sandbox Code Playgroud) android broadcastreceiver alarmmanager android-pendingintent
当点击"菜单"按钮时,制作游戏并尝试覆盖屏幕 - 我想象的应该是相当普遍/简单,但仍然有实现它的问题.
我目前的设置:
正如许多人所建议的,对于性能,我只使用一个SpriteBatch - 因此各种资源和菜单Stage都使用相同的sprite批处理.
着色器的目的是添加一个深色/半透明叠加层以使屏幕变灰,以便打开时菜单更易于阅读.
我遇到的主要问题是因为资源和菜单共享相同的SpriteBatch,它们也共享相同的着色器......所以,当我启用着色效果时,所有内容(背景和菜单按钮)都会变灰.
我怎样才能只使用一个SpriteBatch但只将Shader应用于背景(并保持菜单按钮正常/无阴影)?
目前正试图将我的游戏(使用libgdx)连接到Google Game Services以启用排行榜/成就等,并看到一些奇怪的行为.
问题
当我第一次点击"登录"时,它会显示选择你的谷歌帐户的对话框,然后播放服务权限圈子对话框,然后是大加载圈子.过了一会儿,它会显示一个对话框,其中包含以下错误Google Play服务的未知问题
如果我点击"确定"关闭该错误对话框,然后再次点击"登录"按钮,我立即成功登录.之后,我可以看到排行榜等.
细节
我看到的错误日志:
...
D: GameHelper: onActivityResult: req=RC_RESOLVE, resp=9001
D: GameHelper: onAR: responseCode=9001, so giving up.
D: GameHelper: killConnections: killing connections.
D: GameHelper: killConnections: all clients disconnected.
D: GameHelper: State change CONNECTING -> DISCONNECTED
D: GameHelper: Making error dialog for failure: SignInFailureReason(serviceErrorCode:SIGN_IN_REQUIRED(4),activityResultCode:9001)
D: GameHelper: Showing error dialog.
D: GameHelper: Notifying LISTENER of sign-in FAILURE (error)
I: ----- Sign in failed :( -----
///// Tap the 'sign in' button again ///////
I: ----- Begin …Run Code Online (Sandbox Code Playgroud) android ×3
libgdx ×2
alarmmanager ×1
batch-file ×1
java ×1
robolectric ×1
scripting ×1
shader ×1
shell ×1