小编Sri*_*m R的帖子

递归和静态变量

所以当我遇到这段C代码时,我正准备在印度参加入学考试

#include <stdio.h>
int main(void) {
    static int i = 4;
    if (--i) {
        main();
        printf("%d", i);
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为printf语句永远不会被执行,输出将是空白的.但我看到答案是0000,并且这是由于static关键字与int.

谁能解释为什么printf执行或者那个人错了?

c recursion

14
推荐指数
5
解决办法
3644
查看次数

将初始延迟设置为Android中的Periodic Work Manager

我有一个Worker需要每24小时运行一次的实例,考虑到PeriodicWorkRequestAPI ,这很简单.但这是抓住了.

如果用户在下午8点开始工作,我需要工作管理器的第一个实例在第二天早上9点运行,然后遵循24小时定期约束.

我看了一下这里,我发现OneTimeWorkRequest API有一个setInitialDelay()可以使用的功能,但我无法找到任何PeriodicWorkAPI.

这是一些hacks,例如我可以使用OneTimeWork初始延迟,然后PeriodicWork从那里安排一个但是它有点肮脏的黑客.

有没有办法只用PeriodicWorkRequestAPI 来做到这一点?

android kotlin android-workmanager

10
推荐指数
3
解决办法
3364
查看次数

节点邮件程序错误

我在Firebase Cloud Functions中使用nodemailer在将数据添加到实时数据库时发送邮件.

码:

const functions = require('firebase-functions');
const nodemailer = require('nodemailer');

const gmailEmail = 'myemail.in@gmail.com';
const gmailPassword = 'mypassword';

const mailTransport = nodemailer.createTransport({
  service: 'gmail',
  auth: {
  user: gmailEmail,
  password: gmailPassword
}
});

const APP_NAME = 'ABC In'

exports.salonCreatedAccount = functions.database.instance('abc-
in').ref('/abc/{def}').onCreate(event => {
const snapshot = event.data;
const val = snapshot.val()
console.log(val);

const email = val.email;
const displayname = val.name;

return sendconfirmationEmail(email, displayname);
});

function sendconfirmationEmail(email, displayName){
const mailOptions = {
  from: `${APP_NAME} <abc.in@gmail.com>`,
  to: email
};

mailOptions.subject …
Run Code Online (Sandbox Code Playgroud)

node.js firebase nodemailer firebase-realtime-database google-cloud-functions

8
推荐指数
2
解决办法
8521
查看次数

Recycler 中的 Diff Util 实现在每次刷新时将其滚动到顶部

我正在使用 DiffUtil 实现在滚动时向 RecyclerView 添加新数据。

这是用于在需要时更新项目的代码。

final DiffUtilsCallback<Movie> diffUtilsCallback = new DiffUtilsCallback<>(this.movies, movies);
final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffUtilsCallback);

this.movies.clear();
this.movies.addAll(movies);
diffResult.dispatchUpdatesTo(this);
Run Code Online (Sandbox Code Playgroud)

每次添加新项目时, RecyclerView 都会滚动到顶部项目。如何确保在添加新项目时不会发生滚动。

我已经覆盖了对象的 equals 方法,以便它将对象与 ID 进行比较。

@Override
public boolean equals(Object obj) {
    if (!(obj instanceof Movie)) return false;
    Movie movie = (Movie) obj;
    return this.id == movie.id;
}
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

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

Dagger 2错误子组件可能不引用范围绑定

我在我的应用程序中使用Dagger2来提供依赖项.我构建应用程序时出现以下错误.

    e: /Users/sriramr/Desktop/android/Movie/MovieInfo/app/build/generated/source/kapt/debug/in/sriram/movieinfo/di/ActivityBuilder_BindMoviesListActivity.java:22: error: in.sriram.movieinfo.di.ActivityBuilder_BindMoviesListActivity.MoviesListActivitySubcomponent (unscoped) may not reference scoped bindings:
  @Subcomponent(modules = MoviesListActivityModule.class)
  ^
      @Provides @Singleton in.sriram.movieinfo.network.TmdbService in.sriram.movieinfo.di.MoviesListActivityModule.getTmdbService(retrofit2.Retrofit)
      @Provides @Singleton retrofit2.Retrofit in.sriram.movieinfo.di.NetworkModule.getRetrofit(okhttp3.OkHttpClient, retrofit2.converter.gson.GsonConverterFactory, retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory)
      @Provides @Singleton okhttp3.OkHttpClient in.sriram.movieinfo.di.NetworkModule.getOkHttpClient(okhttp3.logging.HttpLoggingInterceptor, okhttp3.Cache)
      @Provides @Singleton okhttp3.logging.HttpLoggingInterceptor in.sriram.movieinfo.di.NetworkModule.getHttpLoggingInterceptor()
      @Provides @Singleton okhttp3.Cache in.sriram.movieinfo.di.NetworkModule.getCacheFile(@Named("application-context") android.content.Context)
      @Provides @Singleton retrofit2.converter.gson.GsonConverterFactory in.sriram.movieinfo.di.NetworkModule.getGsonConverterFactory()
      @Provides @Singleton retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory in.sriram.movieinfo.di.NetworkModule.getRxJavaFactory()
      @Provides @Singleton in.sriram.movieinfo.cache.AppDatabase in.sriram.movieinfo.di.ContextModule.getAppDatabase(@Named("application-context") android.content.Context)
      @Provides @Singleton com.squareup.picasso.Picasso in.sriram.movieinfo.di.MoviesListActivityModule.getPicasso(@Named("application-context") android.content.Context)
Run Code Online (Sandbox Code Playgroud)

这是我的 ContextModule

@Module
public class ContextModule {

    @Provides
    @Named("application-context")
    Context getContext(Application app) {
        return app;
    }

    @Provides
    @Singleton
    AppDatabase getAppDatabase(@Named("application-context") Context context) { …
Run Code Online (Sandbox Code Playgroud)

android dagger-2

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

工作管理器未安排与 setInitialDelay 一起工作

所以我有一个 Worker,它必须从预定的第二天开始运行。所以如果工作在今天晚上 8 点被激活,那么我需要在第二天上午 9 点执行工作。所以我用OneTimeWorkRequestsetInitialDelay()

这是代码

val currentTime = System.currentTimeMillis()
// calculate the timestamp for next dat 9AM 
val calendar = Calendar.getInstance()

calendar.set(Calendar.HOUR_OF_DAY, 9) 
calendar.set(Calendar.MINUTE, 0)
calendar.set(Calendar.SECOND, 0)
// next day
calendar.add(Calendar.DAY_OF_MONTH, 1)

val tomorrowTime = calendar.timeInMillis
val timeDiffBetweenNowAndTomorrow = tomorrowTime - currentTime

Timber.i("Tomorrow date is ${calendar.timeInMillis}")
Timber.i("Difference between now and tomorrow ${timeDiffBetweenNowAndTomorrow}")

val randomWorkRequest = OneTimeWorkRequestBuilder<RandomWallpaperWorker>()
                    .setInitialDelay(timeDiffBetweenNowAndTomorrow, TimeUnit.MILLISECONDS)
                    .build()

WorkManager.getInstance().enqueue(randomWorkRequest)
Run Code Online (Sandbox Code Playgroud)

但是我查了一下,第二天醒来的时候工作没有执行。为什么不安排呢?我计算第二天的时间戳的方式有问题吗?

android android-workmanager

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

错误无法读取未定义的属性 getState - Redux 与 NextJS

我正在尝试使用 redux 制作一个 nextjs 应用程序,并且正在设置基本框架。其内容如下。

服务器.js

const express = require("express");
const nextjs = require("next");
const { ROUTES, ROUTE_PATHS } = require("./utils/constants");

const dev = process.env.NODE_ENV !== "production";
const PORT = process.env.PORT || 3001;

const app = nextjs({ dev });
const handle = app.getRequestHandler();

app
  .prepare()
  .then(() => {
    const server = express();

    server.get(ROUTES.HOME_ROUTE, (req, res) => {
      app.render(req, res, ROUTE_PATHS.HOME_ROUTE_PATH, {});
    });

    server.get("*", (req, res) => handle(req, res));
    server.listen(PORT, err => {
      if (err) throw err;
      console.log(`> Ready on http://localhost:${PORT}/`); …
Run Code Online (Sandbox Code Playgroud)

reactjs redux next.js

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

打字稿路径在Express项目中不起作用

我正在尝试使用打字稿路径功能,以便不再需要使用相对导入。

这是我的tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "outDir": "./dist",
    "rootDir": ".",
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "resolveJsonModule": true,
    "baseUrl": ".",
    "allowJs": true,
    "paths": {
      "*": ["node_modules/*", "src/*"],
      "@config/*": ["src/config/*"],
      "@controllers/*": ["src/controllers/*"],
      "@middlewares/*": ["src/middlewares/*"],
      "@models/*": ["src/models/*"],
      "@routes/*": ["src/routes/*"],
      "@types/*": ["src/types/*"],
      "@utils/*": ["src/utils/*"]
    }
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "firebase-config.json", "webpack.config.js"]
}
Run Code Online (Sandbox Code Playgroud)

这是我的package.json

{
  "name": "express-ts-boilerplate",
  "version": "0.1.0",
  "description": "Express Typescript Boilerplate",
  "main": "src/server.js",
  "author": "Sriram R",
  "scripts": {
    "start": "NODE_ENV=production node dist/src/app.js",
    "dev": "nodemon src/app.ts",
    "build": …
Run Code Online (Sandbox Code Playgroud)

typescript nodemon ts-node

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

在 CLI 应用程序中实现 Github 身份验证和授权

我正在创建一个新的 CLI 项目,我想在其中使用 Github API 创建新的存储库。在谷歌搜索时,我发现 Github 已弃用授权 API,转而支持 Web 授权流程。我可以看到,也许我们应该在 CLI 应用程序中使用本地重定向 URL,但我不明白如何开始使用它。基本上我需要授权用户(最好使用 Web Flow)从我的 CLI 使用他们的 API。

任何帮助表示赞赏。谢谢。

node.js github-api

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

我可以更改FirebaseUI在用户注册时要求的信息吗?

我正在制作一个具有firebase auth功能的应用程序,用于登录和注册.当我搜索时,我遇到了看起来不错的FireBase UI.当我看到auth文档时,create user方法只接受电子邮件ID和密码,但Firebase UI也获取了用户的名字和姓氏.输入的名称有什么作用?它是存储在auth或数据库中的某个位置还是仅用于展示?如果我实施自己的用户界面进行注册,我可以添加更多详细信息而不仅仅是电子邮件ID和密码吗?

android firebase firebase-authentication firebaseui

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