我正在尝试在收到C2DM消息时显示简单的通知.服务提供给UI,但仍然在主线程上运行.我见过有人声称你可以从服务中创建和显示通知.
@Override
public void onMessage(Context context, Intent intent) {
Log.w("Messsage","Message Received");
Bundle extras = intent.getExtras();
if (extras != null) {
String payload = (String) extras.get("test");
createNotification(context,payload);
}
}
private void createNotification(Context context, String message){
NotificationManager notificationmanager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.default1,message,System.currentTimeMillis());
notificationmanager.notify(0,notification);
}
Run Code Online (Sandbox Code Playgroud)
}
06-15 15:39:13.580: E/AndroidRuntime(11603): FATAL EXCEPTION: IntentService [stp.chrome@gmail.com]
06-15 15:39:13.580: E/AndroidRuntime(11603): java.lang.IllegalArgumentException: contentView required: pkg=com.upmc id=0 notification=Notification(contentView=null vibrate=null,sound=null,defaults=0x0,flags=0x0)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.os.Parcel.readException(Parcel.java:1331)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.os.Parcel.readException(Parcel.java:1281)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:299)
06-15 …Run Code Online (Sandbox Code Playgroud) 今天非常简单的问题.当我尝试检索对话框上的按钮的引用时,我总是收到一个空值.
@Override
public void onRestart() {
super.onRestart();
//must prompt with modal dialog for pin
Dialog dialog = new Dialog(this);
dialog.setOwnerActivity(this);
dialog.setCancelable(false);
//check pin
dialog.setCanceledOnTouchOutside(false);
//set view to enterpin XML screen
dialog.setContentView(R.layout.enterpin);
//register button
//show dialog
dialog.show();
//listen for button being clicked
Button button = (Button) findViewById(R.id.pinlogin);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
EditText editText = (EditText) findViewById(R.id.enterpin);
int enteredPin = Integer.parseInt(editText.getText().toString());
SharedPreferences sharedP = getPreferences(MODE_PRIVATE);
int temp = sharedP.getInt("pin", 0);
if(enteredPin==temp){
pinCheck = true;
}else{
pinCheck = false;
} …Run Code Online (Sandbox Code Playgroud) 不要立即标记我重复的问题。我的问题有所不同,因为我有一个格式正确的 SQL 查询。
public static final String TABLE_NAME = "log";
public static final String COLUMN_ID = "_id";
public static final String LOG_TEXT = "logtext";
private static final String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " integer primary key autoincrement, " +
LOG_TEXT + " TEXT not null);";
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
}
Run Code Online (Sandbox Code Playgroud)
我在这里查询
String[] columns = {LOG_TEXT,COLUMN_ID};
Cursor cursor = helper.getReadableDatabase().query(TABLE_NAME, columns, null, null, null, null, COLUMN_ID + " desc"); …Run Code Online (Sandbox Code Playgroud)