我需要在活动的onCreate事件中创建自定义广播接收器,显然我需要在活动的onDestroy事件中取消注册广播接收器
为清楚起见,这是我使用的代码片段
public class AnActivity extends Activity {
private ResponseReceiver receiver;
public class ResponseReceiver extends BroadcastReceiver {
public static final String ACTION_RESP =
"mypackagename.intent.action.MESSAGE_PROCESSED";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Start a dialogue if message indicates successfully posted to server
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
IntentFilter filter = new IntentFilter(ResponseReceiver.ACTION_RESP);
filter.addCategory(Intent.CATEGORY_DEFAULT);
receiver = new ResponseReceiver();
registerReceiver(receiver, filter);
}
@Override
public void onDestroy() …Run Code Online (Sandbox Code Playgroud) 我想为我的Android应用程序定义默认文本颜色.
我有一个基本活动类,所有活动都是从它扩展而来的,我认为这可能是定义颜色的好地方.
如果不是什么是更好的解决方案?也许风格?
麻烦就是这个,对我来说都是新手,所以请随时告诉我并提供代码片段和解释.
这是我的基类的样子.你可以看到它很空洞
package com.ccslocal.mobile.quiz.jls;
import android.app.Activity;
import android.os.Bundle;
public class BaseActivity extends Activity {
//set up app preferences here
}
Run Code Online (Sandbox Code Playgroud) 我在Heroku上有一个Rails 3.1应用程序.我看到很多这些错误:
错误R14(超出内存配额)
通常,前面的日志条目显示:
进程运行mem = 522M(102.1%)
这确实有所不同,但从来没有太多,并且可能在几乎任何URL请求之后发生,因此就我所知,它与特定的控制器操作无关.
这是一个经典的日志条目块:
2012-01-16T02:35:57+00:00 heroku[router]: PUT prizequiz.herokuapp.com/mobile_users/1 dyno=web.1 queue=0 wait=0ms service=55ms status=401 bytes=27
2012-01-16T02:35:58+00:00 heroku[router]: PUT prizequiz.herokuapp.com/mobile_users/1 dyno=web.1 queue=0 wait=0ms service=155ms status=200 bytes=1
2012-01-16T02:36:02+00:00 heroku[router]: PUT prizequiz.herokuapp.com/mobile_users/1 dyno=web.1 queue=0 wait=0ms service=13ms status=401 bytes=27
2012-01-16T02:36:02+00:00 heroku[router]: PUT prizequiz.herokuapp.com/mobile_users/1 dyno=web.1 queue=0 wait=0ms service=147ms status=200 bytes=1
2012-01-16T02:36:09+00:00 heroku[router]: POST prizequiz.herokuapp.com/mobile_users dyno=web.1 queue=0 wait=0ms service=87ms status=201 bytes=624
2012-01-16T02:36:11+00:00 heroku[router]: GET prizequiz.herokuapp.com/quizzes/1/questions dyno=web.1 queue=0 wait=0ms service=5ms status=401 bytes=27
2012-01-16T02:36:11+00:00 heroku[router]: GET prizequiz.herokuapp.com/quizzes/1/questions dyno=web.1 queue=0 wait=0ms service=290ms status=200 bytes=81412
2012-01-16T02:36:15+00:00 …Run Code Online (Sandbox Code Playgroud) memory memory-management ruby-on-rails heroku ruby-on-rails-3
我已经研究和研究过这个问题,直到我变得灰白秃顶.我如何得到一个webview,适用于需要通过api级别8+上的https连接进行http基本身份验证的站点
我有以下代码
String email = Util.getEmail(this);
String pwd = Util.getPassword(this);
webview.getSettings().setJavaScriptEnabled(true);
webview.setHttpAuthUsernamePassword(Config.SERVER_BASE_URL, "Application", email, pwd);
// webview.setWebViewClient(new MobileWebViewClient(this));
webview.loadUrl(url);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我确实有一个Web视图客户端(现已注释掉)覆盖了onReceivedHttpAuthRequest方法,该方法看起来像这样
@Override
public void onReceivedHttpAuthRequest (WebView view, HttpAuthHandler handler, String host, String realm){
String email = Util.getEmail(wvContext);
String pwd = Util.getPassword(wvContext);
if(!pwd.equalsIgnoreCase("-1") && !pwd.equalsIgnoreCase("-1")){
handler.proceed(email, pwd);
}
}
Run Code Online (Sandbox Code Playgroud)
这是在没有webview.setHttpAuthUsernamePassword的情况下使用并且工作正常,除了它意味着向网站发出了2个请求 - 第一个获得401然后客户端使用授权内容启动这对于少量网站流量很好但是减半流量(目前平均49个请求p/m)是现在的游戏名称!
我读到我可以通过使用先发制人地提供凭据
webview.setHttpAuthUsernamePassword(Config.SERVER_BASE_URL, "Application", email, pwd);
Run Code Online (Sandbox Code Playgroud)
然而,这只会导致Http Basic:访问被拒绝错误服务器基本URL常量是站点的域名,即https://example.com(没有页面)实际URL是https://example.com/some_pages.无论是使用完整网址还是域名都没有区别.我检查了领域,我有正确的,我只使用空字符串只提供电子邮件和密码.这可能与网站使用https的事实有关吗?我的代码似乎在没有https的开发框中正常工作,但这可能是一个红色的鲱鱼.
唯一似乎涵盖我的要求的堆栈溢出问题没有得到接受的答案,文档也没有我能看到的帮助.
我现在脑袋里有这么大的凹痕,撞在一堵砖墙上,我正想着拿一顶方帽子.
如果有人能给我解决方案,我会永远欠你的债!我甚至可能通过电子邮件发送给你一个KitKat
我对Rails 3.1应用程序进行了RSPEC集成测试,该应用程序需要通过发出带有JSON参数的POST请求和需要使用http_basic身份验证的移动头来测试移动客户端的API,因为请求对象在集成测试中不可用我有点卡住了
这是我到目前为止的代码
it "successfully posts scores" do
# request.env["HTTP_ACCEPT"] = "application/json" #This causes an error as request is nly available in controller tests
post "scores", :score => {:mobile_user_id => @mobile_user.id, :points => 50, :time_taken => 7275}.to_json,
:format => :json, :user_agent => 'Mobile', 'HTTP_AUTHORIZATION' => get_basic_auth
end
Run Code Online (Sandbox Code Playgroud)
发布请求无法识别我使用的是http基本身份验证,但不确定json的格式是否正确.任何帮助赞赏
get_basic_auth是一个帮助me4thod,看起来像这样
def get_basic_auth
user = 'user'
pw = 'secret'
ActionController::HttpAuthentication::Basic.encode_credentials user, pw
end
Run Code Online (Sandbox Code Playgroud)
我在我的控制器中使用了before_filter来检查看起来像这样的移动和http_basic_authentication
def authorize
logger.debug("@@@@ Authorizing request #{request.inspect}")
if mobile_device?
authenticate_or_request_with_http_basic do |username, password|
username == Mobile::Application.config.mobile_login_name && Mobile::Application.config.mobile_password
end …Run Code Online (Sandbox Code Playgroud) 我正在为许多Android应用程序创建一个库项目.这些应用程序都有一些我希望包含在库项目中的常用功能,但库项目功能需要使用特定于应用程序的常量
所以我正在寻找一种方法来为库函数提供常量的名称,并允许每个应用程序定义它们
特定应用程序常量的示例以及如何在库项目中使用它
public class AppConstants {
public static final long APP_ID = 6;//Needs to be set for each app
}
public static long getCurrentAppId(Context context) {
return getLongPreference(context, CURRENT_APP_ID_KEY, AppConstants.APP_ID);
}
Run Code Online (Sandbox Code Playgroud)
这只是需要为每个应用程序为大量库函数定义的大约60个常量的一个示例
显然,我通常只会导入/包含项目特定的app_constants.java文件,但这在库项目文件中是不可能的,因为它没有得到关于特定应用程序的线索(这是正确的)
那么让每个特定应用程序覆盖常量的最佳方法是什么?
更新 我花了很长时间来决定哪些极好的答案我提供了最适合我的需求(谢谢大家)最后我选择了xml解决方案.我不是特别喜欢它,因为它混乱了我的应用程序资源,我认真考虑使用接口解决方案,但xml解决方案确实很好用
在运行 Ubuntu 20.10 的全新 digitalocean Droplet 上,运行一个全新的几乎空的 Rails 7 alpha 2 应用程序,bundle install在我的本地计算机上运行 cap 生产部署以及从 Droplet 上的命令 shell 运行时,会产生以下结果
Fetching gem metadata from https://rubygems.org/............
Could not find turbo-rails-7.1.1 in any of the sources
Run Code Online (Sandbox Code Playgroud)
我在本地没有遇到任何问题,因此这必须是生产服务器上的环境问题或我在某处错过的某些配置选项。我正在使用正确配置的最新稳定 rvm,
rvm gemset list
gemsets for ruby-3.0.0 (found in /home/comtechmaster/.rvm/gems/ruby-3.0.0)
(default)
global
=> master_cms
Run Code Online (Sandbox Code Playgroud)
我使用 capistrano 脚本来部署应用程序,并使用 nvm 安装最新的稳定版本节点。Bundler 在两种环境中都是相同的版本,并且 Turbo-rails-7.1.1 没有出现在我的 gemfile.lock 中的任何位置
UPDATE
我已经通过从按钮样式中删除两个可聚焦线并使用onClick事件处理程序来调用来解决点击问题 requestFocusFromTouch();
不幸的是,我遇到了一个问题,即requestFocusFromTouch()聚焦了错误的按钮.它总是聚焦第一个按钮而不是我调用方法的按钮.这是一个安卓漏洞或预期的行为,我可以做些什么来解决这个问题?
对于onClick事件,代码现在看起来像这样
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_home:
Intent i = new Intent(this, QuizMenu.class);
startActivity(i);
v.requestFocusFromTouch();
break;
case R.id.btn_support:
Intent i1 = new Intent(this, Support.class);
startActivity(i1);
v.requestFocusFromTouch();
View btnSupport = findViewById(R.id.btn_support);
btnSupport.setSelected(true);
btnSupport.requestFocusFromTouch();
break;
// More buttons go here (if any) ...
}
}
Run Code Online (Sandbox Code Playgroud)
更新结束
我有一个具有以下风格的android按钮
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MnuBtnStyle">
<item name="android:ellipsize">marquee</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
<item name="android:singleLine">true</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_marginTop">1dip</item>
<item name="android:layout_marginBottom">1dip</item>
<item name="android:textSize">10dp</item>
<item …Run Code Online (Sandbox Code Playgroud) 使用内容提供程序进行SQLite数据库访问时
我已经在 importmap-rails gem github 存储库中提出了一个关于此问题的问题,但我想我会在这里抛出这个问题,以防有人可能有解决方法
这是我迄今为止发现的
使用 Rails 7 alpha 2 或 Rails 7.0 生成的新引擎rails plugin new custom_page --mountable --full会生成一个新引擎,该引擎在捆绑的 gem 中包含 importmap-rails gem,但无法使用它。添加spec.add_dependency 'importmap-rails'到enginename.gemspec 没有什么区别,添加arequire importmap-rails到engine.rb 也没有区别。bin 目录中没有 importmap 可执行文件。调用bundle info importmap-rails
产生一个有希望的结果,表明默认情况下安装了 gem
* importmap-rails (0.8.1)
Summary: Use ESM with importmap to manage modern JavaScript in Rails without transpiling or bundling.
Homepage: https://github.com/rails/importmap-rails
Source Code: https://github.com/rails/importmap-rails
Path: /home/jamie/.rvm/gems/ruby-3.0.0@custom_page/gems/importmap-rails-0.8.1
Run Code Online (Sandbox Code Playgroud)
致电rails --tasks节目
rails app:importmap:install # Setup Importmap for the …Run Code Online (Sandbox Code Playgroud) android ×6
bundler ×1
heroku ×1
import-maps ×1
memory ×1
one-to-many ×1
rspec-rails ×1
testing ×1