- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以这是一个简单的应用程序,它从用户那里获取两个文本输入,然后在单击按钮时创建通知。这是代码:
package com.dewey.notifymanager;
import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button = (Button) findViewById(R.id.button1);
final TextView texty = (TextView) findViewById(R.id.textView2);
final EditText input = (EditText) findViewById(R.id.editText1);
final EditText input2 = (EditText) findViewById(R.id.editText2);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String notificationmessage = input.getText().toString();
String notificationdetails = input2.getText().toString();
texty.setText("Notification Created");
displayNotification(notificationmessage, notificationdetails);
}
});
}
@Override
protected void onStart() {
super.onStart();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void displayNotification(String msg,String details)
{
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, msg, System.currentTimeMillis());
notification.setLatestEventInfo(this, msg, details, null);
int num = 0;
manager.notify(num, notification);
}
}
该应用程序在模拟器上运行并显示通知:
但是当我在手机上运行它时,单击按钮时不会显示通知,而当我在运行 Android 2.3 的手机上运行它时,应用程序崩溃并在单击按钮时意外停止。
这是日志:
01-09 13:21:29.653: D/AndroidRuntime(981): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
01-09 13:21:29.653: D/AndroidRuntime(981): CheckJNI is ON
01-09 13:21:30.773: D/AndroidRuntime(981): Calling main entry com.android.commands.pm.Pm
01-09 13:21:30.832: D/AndroidRuntime(981): Shutting down VM
01-09 13:21:30.842: D/dalvikvm(981): GC_CONCURRENT freed 101K, 78% free 462K/2048K, paused 1ms+2ms
01-09 13:21:30.853: D/dalvikvm(981): Debugger has detached; object registry had 1 entries
01-09 13:21:30.872: I/AndroidRuntime(981): NOTE: attach of thread 'Binder Thread #3' failed
01-09 13:21:31.863: D/AndroidRuntime(994): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
01-09 13:21:31.863: D/AndroidRuntime(994): CheckJNI is ON
01-09 13:21:32.912: D/AndroidRuntime(994): Calling main entry com.android.commands.am.Am
01-09 13:21:32.952: I/ActivityManager(85): Force stopping package com.dewey.notifymanager uid=10040
01-09 13:21:32.952: I/Process(85): Sending signal. PID: 965 SIG: 9
01-09 13:21:32.973: I/ActivityManager(85): Force finishing activity ActivityRecord{415d64e0 com.dewey.notifymanager/.MainActivity}
01-09 13:21:33.002: W/InputDispatcher(85): channel '4160dde0 com.dewey.notifymanager/com.dewey.notifymanager.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
01-09 13:21:33.002: E/InputDispatcher(85): channel '4160dde0 com.dewey.notifymanager/com.dewey.notifymanager.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
01-09 13:21:33.002: I/WindowManager(85): WIN DEATH: Window{4160dde0 com.dewey.notifymanager/com.dewey.notifymanager.MainActivity paused=true}
01-09 13:21:33.002: W/InputDispatcher(85): Attempted to unregister already unregistered input channel '4160dde0 com.dewey.notifymanager/com.dewey.notifymanager.MainActivity (server)'
01-09 13:21:33.092: I/WindowManager(85): WINDOW DIED Window{4160dde0 com.dewey.notifymanager/com.dewey.notifymanager.MainActivity paused=true}
01-09 13:21:33.092: I/ActivityManager(85): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.dewey.notifymanager/.MainActivity} from pid 994
01-09 13:21:33.103: W/WindowManager(85): Failure taking screenshot for (180x300) to layer 21045
01-09 13:21:33.193: D/AndroidRuntime(994): Shutting down VM
01-09 13:21:33.223: D/dalvikvm(1004): Not late-enabling CheckJNI (already on)
01-09 13:21:33.223: I/AndroidRuntime(994): NOTE: attach of thread 'Binder Thread #3' failed
01-09 13:21:33.223: D/dalvikvm(994): GC_CONCURRENT freed 102K, 77% free 485K/2048K, paused 1ms+1ms
01-09 13:21:33.223: D/jdwp(994): Got wake-up signal, bailing out of select
01-09 13:21:33.233: D/dalvikvm(994): Debugger has detached; object registry had 1 entries
01-09 13:21:33.263: I/ActivityManager(85): Start proc com.dewey.notifymanager for activity com.dewey.notifymanager/.MainActivity: pid=1004 uid=10040 gids={}
01-09 13:21:33.733: W/NetworkManagementSocketTagger(85): setKernelCountSet(10040, 1) failed with errno -2
01-09 13:21:34.023: W/ActivityThread(1004): Application com.dewey.notifymanager is waiting for the debugger on port 8100...
01-09 13:21:34.042: I/System.out(1004): Sending WAIT chunk
01-09 13:21:34.064: I/dalvikvm(1004): Debugger is active
01-09 13:21:34.242: I/System.out(1004): Debugger has connected
01-09 13:21:34.242: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:34.553: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:34.752: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:34.962: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:35.162: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:35.362: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:35.563: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:35.782: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:36.024: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:36.281: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:36.525: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:36.734: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:36.940: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:37.148: I/System.out(1004): waiting for debugger to settle...
01-09 13:21:37.357: I/System.out(1004): debugger has settled (1477)
01-09 13:21:39.322: D/dalvikvm(85): GREF has increased to 501
01-09 13:21:39.473: D/gralloc_goldfish(1004): Emulator without GPU emulation detected.
01-09 13:21:39.622: I/ActivityManager(85): Displayed com.dewey.notifymanager/.MainActivity: +6s463ms
01-09 13:21:40.053: W/NetworkManagementSocketTagger(85): setKernelCountSet(10004, 0) failed with errno -2
01-09 13:21:42.673: D/dalvikvm(85): GC_CONCURRENT freed 488K, 7% free 12839K/13767K, paused 8ms+50ms
01-09 13:21:42.862: D/dalvikvm(139): GC_CONCURRENT freed 408K, 34% free 11007K/16519K, paused 5ms+10ms
01-09 13:21:46.232: D/dalvikvm(139): GC_FOR_ALLOC freed 400K, 34% free 10990K/16519K, paused 316ms
01-09 13:21:51.422: D/PhoneStatusBar(139): panel: ACTION_DOWN at (191.000000, 2.000000) mDisabled=0x00000000
01-09 13:21:51.422: D/PhoneStatusBar(139): panel: beginning to track the user's touch, y=2 opening=true
01-09 13:21:53.452: D/PhoneStatusBar(139): panel: ACTION_UP at (277.000000, 168.000000) mDisabled=0x00000000
01-09 13:21:53.462: D/PhoneStatusBar(139): gesture: vraw=(48.303123,-210.310593) vnorm=(48.303123,-210.310593) vlinear=-215.786316
01-09 13:21:53.462: D/PhoneStatusBar(139): panel: will fling, y=204 vel=-215.78632
01-09 13:21:54.012: W/InputManagerService(85): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@415cf110
01-09 13:21:54.412: I/ActivityManager(85): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher} from pid 85
01-09 13:21:54.412: W/WindowManager(85): Failure taking screenshot for (180x300) to layer 21050
01-09 13:21:54.452: W/NetworkManagementSocketTagger(85): setKernelCountSet(10004, 1) failed with errno -2
01-09 13:21:55.842: W/InputManagerService(85): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@415fb440 (uid=10040 pid=1004)
01-09 13:21:55.882: W/IInputConnectionWrapper(1004): showStatusIcon on inactive InputConnection
01-09 13:21:56.974: W/NetworkManagementSocketTagger(85): setKernelCountSet(10040, 0) failed with errno -2
我的 list 有问题吗?:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
最佳答案
您的应用程序需要设置 PendingIntent,这是 setLatestEventInfo() 所要求的。所以替换:
notification.setLatestEventInfo(this, msg, details, null);
与
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
notification.setLatestEventInfo(this, msg, details, pendingIntent);
这将使您的应用程序正常工作,但我还强烈建议您在 Apilevel 之间进行区分。您的应用程序可能如下所示:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button = (Button) findViewById(R.id.button1);
final TextView texty = (TextView) findViewById(R.id.textView2);
final EditText input = (EditText) findViewById(R.id.editText1);
final EditText input2 = (EditText) findViewById(R.id.editText2);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String notificationmessage = input.getText().toString();
String notificationdetails = input2.getText().toString();
texty.setText("Notification Created");
displayNotification(notificationmessage, notificationdetails);
}
});
}
@Override
protected void onStart() {
super.onStart();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/**
* Show a notification while this service is running.
*
*/
private void displayNotification(String msg, String details) {
int num = 0;
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
intent, 0);
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion <= 8) {
manager.notify(num,
createNotificationApi8(msg, details, pendingIntent));
} else {
manager.notify(num,
createNotificationApi14(msg, details, pendingIntent));
}
}
@TargetApi(value = 14)
private Notification createNotificationApi14(String msg, String details,
PendingIntent intent) {
Notification.Builder builder = new Builder(getApplicationContext());
builder.setSmallIcon(R.drawable.ic_launcher);
builder.setContentTitle(msg);
builder.setContentIntent(intent);
builder.setContentInfo(details);
Notification notification = builder.getNotification();
return notification;
}
@TargetApi(value = 8)
private Notification createNotificationApi8(String msg, String details,
PendingIntent intent) {
Notification notification = new Notification(R.drawable.ic_launcher,
msg, System.currentTimeMillis());
notification.setLatestEventInfo(this, msg, details, intent);
return notification;
}
}
希望对您有所帮助,否则请告诉我。安达克
关于android - 通知在模拟器中有效,但在电话中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243634/
我使用 iOS 4.2 和 Xcode 3.2.5 创建了一个通用二进制文件。我正在尝试对应用程序进行一些自动化测试,由于 iPad 和 iPhone 版本之间的界面略有不同,因此我有单独的 UIAu
这是一个概念性的问题。如果有人能澄清背后的故事,那就太好了。 我了解模拟器和模拟器之间的区别。 模拟器:模仿设备环境(硬件、网络功能等)。与设备相比,我们更有可能得到非常接近的结果。 模拟器:使用正在
是否有任何现成的解决方案可以模拟或模拟 LDAP 服务器功能? 或者是否可以在 ubuntu 上安装 ldap 服务器(仅适用于 localhost)? 如果它不是来自 localhost 的 jsu
我正在将我的应用程序修复为通用二进制文件。模拟器上的测试似乎默认使用 iPad。对于诸如检查方向和小型 UI 更新之类的小修正,我能找到的获取 iPhone 版本的唯一方法是插入我的 iPhone 并
Emulator: emulator: WARNING: Could not connect to proxy at ::1:8080: Unknown error ! - Android 将 And
我的应用程序在 ios 4.3 模拟器中运行良好,但在 ios 5 模拟器中运行不佳。我的 iPhone 上有 ios 5,我的应用程序确实可以在 iPhone 上运行。 该应用在所有这三种环境中都可
我在 azure 上制作了移动应用程序,并将其快速启动为 xamarian.forms,并且(在未能发布下载的表 api 应用程序并决定在浏览器中编辑它之后)下载了他们提供的客户端应用程序。然后,当我
Emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration! Emulator: Process
我试图在 iOS 10.3 模拟器上将任意文件从我的应用程序的沙箱保存到 iCloud Drive。 iCloud Drive 已启用并且我已登录。如果我在模拟器上打开 iCloud Drive 应用
有谁知道一个小型、快速、支持 DOM 层的 javascript 模拟器?在 C/C++ 中? 问题:我需要在爬虫应用程序中对 javascript 的基本支持,并且想知道除了以下选项之外是否还有其他
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我是 Xcode 开发新手。我在基于 Lion 的 Mac 上安装了 Xcode 4.3.1,并取消设置 ~/Library 上的隐藏标志。 我在这里读到了有关 iPhone/iPad 模拟器的信息
我已在 VisualStudio 2015 AZURE SDK 2.9、C# 中创建辅助角色 我在每个方法的开头添加了断点: public override void Run() {
全部。我已经安装了 Azure SDK 1.7。解决方案中的所有程序集都是使用“任何 CPU”设置进行编译的。但是当我在我的计算机上的 Azure 模拟器中启动解决方案时,其中之一失败了。该错误非常奇
有没有独立的 WAP 模拟器来模拟诺基亚 6600 和索尼爱立信 MIDP 手机的 waop 网站? 我正在创建一个 WAP 门户,我不想每次都将所有文件上传到网络上,然后将其加载到 Opera Mi
我已经安装了 Tizen 的 Visual Studio Code 扩展,并且(看起来)进展顺利。 但是,当我启动 Tizen 模拟器管理器时,我没有安装任何平台,并且当我尝试安装平台时,没有可用的平
我目前正在我的 jquery mobile/phonegap 应用程序中处理表单。在此表单中,我有两个选择列表。它们在我的桌面浏览器(firefox、safari、chrome)中都能正常工作。 奇怪
我尝试制作一个分辨率为 480x480 像素的模拟器。但是模拟器永远不会完成启动。它卡在 Android Logo 页面上。分辨率有限制吗? 最佳答案 模拟器 is not smart about s
我不知道如何在虚拟设备上启用快照功能。该选项是灰色的,创建或编辑虚拟设备时没有设置。我使用的是最新版本的 SDK 工具修订版 22.6.3 这是我的窗口的样子:Create new Android V
我正在尝试使用具有特定屏幕分辨率的模拟器,但是当我将屏幕参数设置为我需要的参数时,键盘消失了。这样我就没有后退按钮,主页按钮..任何想法如何解决这个问题?这是我在 AVD 管理器中设置的:屏幕分辨率:
我是一名优秀的程序员,十分优秀!