无法创建通知,我检查了几篇文章代码示例与我的相同。请检查下面的代码以及我在做错的地方。
下面我已经粘贴了2个班级。 MainActivity类,单击一次按钮即可创建通知。第二类,创建通知。
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
NotificationBuilder nB=new NotificationBuilder();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goToSecondActivity();
nB.createNotify();
}
});
}
private void goToSecondActivity() {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
}
**Second class**
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.support.v7.app.AppCompatActivity;
public class NotificationBuilder extends AppCompatActivity {
void createNotify() {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification")
.setContentText("Hello World!");
Intent resultIntent = new Intent(this, MainActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
0, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(001, mBuilder.build());
}
}
尝试使用noughat和Kitkat Apis等级。 尝试使用另一部手机,但结果相似
答案 0 :(得分:0)
NotificationBuilder nB=new NotificationBuilder();
你基本上不应该像这样创建Activity
。这意味着几个必需的内部组件将无法正确初始化。
这意味着this
中createNotify
的所有实例都无法正常工作。上下文必须是MainActivity
,而不是您的构建器类。
停止将NotificationBuilder
延伸至Activity
,并将正确的Context
作为参数传递给createNotify
。用上下文替换this
的大多数调用都应该修复你的代码。