小编Joh*_*ith的帖子

警告:不要将Android上下文类放在静态字段中; 这是内存泄漏(也打破了Instant Run)

Android Studio:

不要将Android上下文类放在静态字段中; 这是内存泄漏(也打破了Instant Run)

那么2个问题:

#1如何在startService没有静态变量的情况下从静态方法调用上下文?
#2如何从静态方法发送localBroadcast(相同)?

例子:

public static void log(int iLogLevel, String sRequest, String sData) {
    if(iLogLevel > 0) {

        Intent intent = new Intent(mContext, LogService.class);
        intent.putExtra("UPDATE_MAIN_ACTIVITY_VIEW", "UPDATE_MAIN_ACTIVITY_VIEW");
        mContext.startService(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

        Intent intent = new Intent(MAIN_ACTIVITY_RECEIVER_INTENT);
        intent.putExtra(MAIN_ACTIVITY_REQUEST_FOR_UPDATE, sRequest));
        intent.putExtra(MAIN_ACTIVITY_DATA_FOR_VIEW, sData);
        intent.putExtra(MAIN_ACTIVITY_LOG_LEVEL, iLogLevel);
        LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

没有使用,这样做的正确方法是什么mContext

注意:我认为我的主要问题可能是如何将上下文传递给调用方法所在的类.

android android-studio-2.2

79
推荐指数
4
解决办法
5万
查看次数

寻找新的Android API setMediaButtonReceiver的示例

目前我正在使用

  mAudioManager.registerMediaButtonEventReceiver(mRemoteControlResponder);
Run Code Online (Sandbox Code Playgroud)

但现在已在5.0中弃用,并替换为setMediaButtonReceiver.谷歌有5个链接都指向developer.android.com.

有人用过这个吗?如果是这样,你能提供一个例子吗?

android android-audiomanager

14
推荐指数
1
解决办法
2411
查看次数

Android Wearable.API已弃用.我应该用什么呢?

我正在使用以下内容:

GoogleApiClient mApiClient = new GoogleApiClient.Builder(this)
            .addApi( Wearable.API )
...
Run Code Online (Sandbox Code Playgroud)

既然Wearable.API已被弃用?什么是合适的替代品?

android

6
推荐指数
1
解决办法
1116
查看次数

如何清除触摸屏“触摸”按钮焦点、活动、悬停

试图找出如何将按钮重置回“未触摸”状态。我使用按钮作为:

    <div id="service-control-buttons" data-role="controlgroup" data-type="horizontal">
        <a href="#" id="service-previous" data-role="button" data-icon="arrow-l">Prev</a>
        <a href="#" id="service-next" data-role="button" data-icon="arrow-r" data-iconpos="right">Next</a>
    </div>
Run Code Online (Sandbox Code Playgroud)

当我点击(在 iPad 上)“下一个”或“上一个”时,它会运行我编写的 JavaScript 函数,然后按钮保持永久活动、悬停或聚焦(不确定状态)。

我的目标:在 javascript 函数运行后,我想将按钮重置回非活动、非悬停或非聚焦状态。当然,这不会发生在非触摸屏鼠标点击上。

我试过了:

$(another-selecter).focus();
$(another-selecter).click();
$('#service-next').blur();
Run Code Online (Sandbox Code Playgroud)

$('#service-next').css('background-color', 'original-color') 
Run Code Online (Sandbox Code Playgroud)

有效,但当然,这就是突出显示的全部结束,我不希望这样。我不想手动设置 css,因为我使用的主题将来可能会发生变化,并且希望尽可能避免黑客攻击。

html javascript css jquery

5
推荐指数
1
解决办法
1143
查看次数

Xcode Swift 3.0 macOS(Sierra)应用程序无法创建文件,没有权限

我对Xcode和Swift很新.我正在尝试在我的Documents目录中创建一个名为"file.txt"的文件,并收到错误"您没有权限保存文件".

最终,我不想使用默认的Documents目录,因为我正在使用FIFinderSyncController来监视所有内容("/").

    let targetFile = (FIFinderSyncController.default().targetedURL()?.path)! + "/file.txt"

    NSLog("%@", targetFile as NSString)

    let fileManager = FileManager.default
    if fileManager.fileExists( atPath: (targetFile) ) == false {

        do {
            let targetString = (FIFinderSyncController.default().targetedURL()?.path)! + "/Untitled.txt"

            NSLog("%@", targetString as NSString)

            let fileManager = FileManager.default

            if fileManager.fileExists( atPath: targetString ) == false {
                let content = "" // Just creating empty file.

                //writing
                try content.write(toFile: targetString, atomically: false, encoding: String.Encoding.utf8)

                //reading
                let readingText = try NSString(contentsOfFile: targetString, encoding: String.Encoding.utf8.rawValue)

                NSLog("%@", readingText as NSString)
            }
        } …
Run Code Online (Sandbox Code Playgroud)

xcode swift macos-sierra xcode8

5
推荐指数
2
解决办法
1897
查看次数

无需越狱即可获得带有文本正文的短信广播,但在 IOS 中具有私有框架

我想知道当收到短信时是否可以收到短信广播。我还想检索整个正文和发件人信息。我想知道这是否可以通过私有框架而不越狱来实现。我不会出售该应用程序,它仅适用于我的个人手机,但我正在努力避免越狱猫和老鼠。

sms iphone-privateapi ios

2
推荐指数
1
解决办法
3323
查看次数

javascript button.style.backgroundColor 返回 "" 直到单击

function chgBkColor(v) {
  v.style.backgroundColor === "rgb(255, 255, 255)" ?
    v.style.backgroundColor = "#50AAD7" :
    v.style.backgroundColor = "#fff"
};
Run Code Online (Sandbox Code Playgroud)
.dowBtn {
  background-color: #fff;
  border-radius: 0.7em;
  border: 1px solid #ddd;
}
Run Code Online (Sandbox Code Playgroud)
<button onclick='chgBkColor(this);' id="su" class="dowBtn">Su</button>
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,第一次单击不起作用,v.style 为空白。我已经使用 documentGetElementById 尝试了各种方法,并且所有方法都以相同的方式发生。

每次点击后都可以很好地切换背景颜色。

javascript css

2
推荐指数
1
解决办法
401
查看次数

Android:正确的方法来停止,取消绑定并完全删除NotificationListenerService

我有一个从Manifest启动的NotificationListenerService.该服务正在运行并正在处理通知.我想能够停止,取消绑定和删除(onDestroy调用).有人能提供一个最小的例子吗?

我已经尝试过实现ServiceConnection和unbind()和selfstop()但它仍然不会运行onDestroy.我还试图设置内联NotificationListenerService,但无法弄清楚如何绑定它.

service android

1
推荐指数
1
解决办法
1471
查看次数

发送HTTP / 2 POST请求NodeJS

我试图弄清楚如何使用NodeJS发送HTTP / 2 POST请求。到目前为止,我离文档中的示例还很远:

const http2 = require('http2');
const fs = require('fs');
const client = http2.connect('https://localhost:8443', {
  ca: fs.readFileSync('localhost-cert.pem')
});
client.on('error', (err) => console.error(err));
client.on('socketError', (err) => console.error(err));

const req = client.request({ ':path': '/' });

req.on('response', (headers, flags) => {
  for (const name in headers) {
    console.log(`${name}: ${headers[name]}`);
  }
});

req.setEncoding('utf8');
let data = '';
req.on('data', (chunk) => { data += chunk; });
req.on('end', () => {
  console.log(`\n${data}`);
  client.close();
});
req.end();
Run Code Online (Sandbox Code Playgroud)

但是我还不清楚如何实际设置数据以POST方式发送。

post node.js http2

1
推荐指数
2
解决办法
3961
查看次数