我正在尝试使用这篇文章为我的Android应用程序创建一个自定义通知,我偶然发现了一个问题,我试图解决过去2个小时.
只有我的布局的图像视图显示,我无法弄清楚如何让它像预期的那样工作.
我的代码:
package be.ac.ucl.lfsab1509.cumulus.services;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.widget.RemoteViews;
import be.ac.ucl.lfsab1509.cumulus.R;
import be.ac.ucl.lfsab1509.cumulus.activities.MainActivity;
import be.ac.ucl.lfsab1509.cumulus.entities.Song;
public class CumulusNotification {
private CumulusService mCtx;
private CumulusMediaPlayer mPlayer;
private Notification mNotification;
private NotificationCompat.Builder mBuilder;
private RemoteViews mContentView;
public CumulusNotification(CumulusService ctx, CumulusMediaPlayer player){
mCtx = ctx;
mPlayer = player;
mBuilder = new NotificationCompat.Builder(
mCtx);
mBuilder.setSmallIcon(R.drawable.ic_stat_cumulus_notification);
//mBuilder.setContentTitle("Cumulus is playing");
//mBuilder.setTicker("Cumulus");
//mBuilder.setContentText(mCtx.getCurrentSong().title());
Intent resultIntent = new Intent(mCtx, MainActivity.class);
resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
resultIntent.setAction(Intent.ACTION_MAIN);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(mCtx); …Run Code Online (Sandbox Code Playgroud) 我实际上正在使用C语言进行分配,为了实现我的需要,我需要使用一个静态数组,让我们说
static int array[LEN];
Run Code Online (Sandbox Code Playgroud)
诀窍是这个数组长度LEN是在main().例如
static int LEN;
void initLen(int len) {
LEN = len;
}
static int array[LEN];
Run Code Online (Sandbox Code Playgroud)
在哪里initLen调用main,并len使用用户给出的参数计算.
这个设计的问题是我得到了错误
threadpool.c:84: error: variably modified ‘isdone’ at file scope
Run Code Online (Sandbox Code Playgroud)
该错误是由于我们无法使用变量作为长度初始化静态数组.为了使它工作,我正在定义LEN_MAX和写
#define LEN_MAX 2400
static int array[LEN_MAX]
Run Code Online (Sandbox Code Playgroud)
这个设计的问题是我暴露自己的缓冲区溢出和segfaults :(
所以我想知道是否有一些优雅的方法来初始化具有确切长度的静态数组LEN?
先感谢您!