在ActivityGroup的sub activity中直接使用Spinner会遇到这样的问题。
08-02 17:30:57.817: ERROR/AndroidRuntime(320): android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@44ed8338 is not valid; is your activity running?
08-02 17:30:57.817: ERROR/AndroidRuntime(320): at android.view.ViewRoot.setView(ViewRoot.java:468)
08-02 17:30:57.817: ERROR/AndroidRuntime(320): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
08-02 17:30:57.817: ERROR/AndroidRuntime(320): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
直接看代码吧
你需要在你的sub activity的oncreate方法这样获得content view
View contentView = LayoutInflater.from(BrowseGroup.BROWSE_GROUP).inflate(R.layout.browse, null); pageNoSpinner = (Spinner) contentView.findViewById(R.id.pageNo); ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(BrowseGroup.BROWSE_GROUP, android.R.layout.simple_spinner_item); for(int i=1;i<=16;i++){ adapter.add(i); } pageNoSpinner.setAdapter(adapter); riddlesListView = (ListView) contentView.findViewById(R.id.categories);setContentView(contentView);
1.从google搜索内容
Intent intent = new Intent();
intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"searchString")
startActivity(intent);
2.浏览网页
Uri uri = Uri.parse("http://www.google.com");
Intent it = new Intent(Intent.ACTION_VIEW,uri);
startActivity(it);
3.显示地图
Uri uri = Uri.parse("geo:38.899533,-77.036476");
Intent it = new Intent(Intent.Action_VIEW,uri);
startActivity(it);
4.路径规划
Uri uri = Uri.parse("http://maps.google.com/maps?f=dsaddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
Intent it = new Intent(Intent.ACTION_VIEW,URI);
startActivity(it);
5.拨打电话界面
Uri uri = Uri.parse("tel:xxxxxx");
Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);
直接拨打电话:Intent.ACTION_CALL
6.调用发短信的程序
Intent it = new Intent(Intent.ACTION_VIEW);
it.putExtra("sms_body", "The SMS text");
it.setType("vnd.android-dir/mms-sms");
startActivity(it);
7.发送短信
Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);
String body="this is sms demo";
Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", number, null));
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true);
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true);
startActivity(mmsintent);
8.发送彩信
Uri uri = Uri.parse("content://media/external/images/media/23");
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra("sms_body", "some text");
it.putExtra(Intent.EXTRA_STREAM, uri);
it.setType("image/png");
startActivity(it);
StringBuilder sb = new StringBuilder();
sb.append("file://");
sb.append(fd.getAbsoluteFile());
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mmsto", number, null));
// Below extra datas are all optional.
intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT, subject);
intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI, sb.toString());
intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, composeMode);
intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, exitOnSent);
startActivity(intent);
9.发送Email
Uri uri = Uri.parse("mailto:xxx@abc.com");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(it);
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.setType("text/plain");
startActivity(Intent.createChooser(it, "Choose Email Client"));
Intent it=new Intent(Intent.ACTION_SEND);
String[] tos={"me@abc.com"};
String[] ccs={"you@abc.com"};
it.putExtra(Intent.EXTRA_EMAIL, tos);
it.putExtra(Intent.EXTRA_CC, ccs);
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
it.setType("message/rfc822");
startActivity(Intent.createChooser(it, "Choose Email Client"));
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");
sendIntent.setType("audio/mp3");
startActivity(Intent.createChooser(it, "Choose Email Client"));
10.播放多媒体
Intent it = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file:///sdcard/song.mp3");
it.setDataAndType(uri, "audio/mp3");
startActivity(it);
Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
11.卸载 apk
Uri uri = Uri.fromParts("package", strPackageName, null);
Intent it = new Intent(Intent.ACTION_DELETE, uri);
startActivity(it);
12.install apk
Uri installUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
注:来自tech2ipo.com
911对于美国人来说是个记忆深刻的灾难性日子,可是自911之后,美国的政府和市民之间的通信却依旧并不畅通。CiviGuard移动应用程序就是为了解决这个问题而诞生的,CiviGuard自称是Gov 2.0的一个重要的部分。
一旦某个区域有了突发事件,由政府管理的指挥中心首先确定需要通知哪个区域内的群众。然后,CiviGuard根据这个区域确定出基站的列表,位于这些基站覆盖范围内的用户就都可以收到通知的信息——短信、推讯或者email,以便他们及时改变行驶路线。
CiviGuard的一大优势就是发送通知的速度。发送100万条一般的短信通知,通常需要1到12个小时,而CiviGuard却可以在2分钟内完成这个过程。
目前所有手机都可以通过短信来接收通知,不过iPhone, iPad 以及Android用户还可以使用手机应用程序来接收推讯。为什么要用手机应用程序?在手机应用程序中,你可以通过内置地图看到突发事件的具体位置。另外还能实时的看到政府发出的关于事发地点的实时状况。
网址:http://www.civiguard.com
---
个人认为实现起来还是挺麻烦的,也只有政府才能做这样利民的项目,因为如果做商业应用的话是很难拿到相关数据的。另外在隐私方面也是一个大问题,因为我们每个人是不希望别人知道自己所处的位置,不希望时时刻刻处于ZF“监视”范围之内。