Android MainActivity在电话中失败
我正在做一个非常简单的例子,我想要一个按钮来生成通知。我不是在寻找互动(所以没有意图);只需要发布一个简单的通知。 UI只包含一个按钮,单击该按钮可生成通知 代码如下:Android MainActivity在电话中失败,android,android-activity,Android,Android Activity,我正在做一个非常简单的例子,我想要一个按钮来生成通知。我不是在寻找互动(所以没有意图);只需要发布一个简单的通知。 UI只包含一个按钮,单击该按钮可生成通知 代码如下: package ank.notificationdemo; import android.R.drawable; import android.os.Bundle; import android.app.Activity; import android.app.Notification; import android.app.
package ank.notificationdemo;
import android.R.drawable;
import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button btn_notify;
Notification noti;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_notify = (Button) findViewById(R.id.btn_notify);
noti = new Notification.Builder(MainActivity.this)
.setContentTitle("Alert!").setContentText("Shipwreck at 22N-56E. Hurry!").setSmallIcon(drawable.ic_dialog_alert)
.build();
btn_notify.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
NotificationManager mgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
noti.flags |= Notification.FLAG_AUTO_CANCEL;
mgr.notify(100, noti);
}
});
}
}
问题是,这可以在模拟器上运行,但主活动无法加载到我的Android手机上(运行ICS)。然而,其他例子效果良好
有没有关于可能出了什么问题的线索
提前谢谢 我记得我的Nexus4也有类似的问题。但是,通过在NotificationBuilder中设置意图解决了此问题。确定 尝试了您的代码,结果发现问题在于使用
Notification.Builder.build()
看起来他们只是在Jelly Bean和支持库的最新更新中将其更改为.build()
因此,只需导入新的支持库并使用
NotificationCompat.Builder
。应该能解决你的问题 您能提供logcat报告吗?要收集logcat报告,请使用'adb logcat'@Dimmerg。您是指来自Eclipse IDE的logcat报告吗?在我看来,它的尺寸相当大。我应该把所有东西都粘贴到这里,还是把文本文件上传到某个地方并提供链接?(如果问题是哑的,很抱歉!)你在log cat中看到堆栈跟踪吗?@ankush你可以将其粘贴到pastebin.com上,并在此处提供链接。请注意红色字符串-这是堆栈跟踪和错误描述。但这意味着我的应用程序在低于4.0的版本上会中断,不是吗?如果使用支持库,则不会。如果您使用该方法,那么.build()方法将很好地工作。非常感谢您!谢谢,谢谢,谢谢!!在过去的两天里,我一直在思考这个问题,最终我找到了一个有效的方法!但是“看起来他们只是在Jelly Bean和支持库的最新更新中将其更改为.build()”是什么意思?这是否意味着整个类结构都被一个.build()替换了?如果不是的话,以前不是也是.build()吗?请解释一下,非常感谢!以前的方法是.getNotification()
。所以JB(4.1-)之前的任何东西都必须使用它。我认为,他们在JB中对其进行了修改,以使其在最佳实践方面更为正确,也就是说,拥有一个不构建的构建器是毫无意义的。然后,为了适应现有的应用程序,它们将相同的更改放在支持库中,因此现在您可以只参考NotificationCompat
,并可以使用.build()
。希望这能解释…哈哈哈哈。还是有点模糊,但你做得很好!我非常感谢!不幸的是,添加意图仍然会崩溃。如何将修改后的代码粘贴到此处?