我尝试通过Facebook API连接Facebook,我按照这个例子:https://github.com/facebook/facebook-android-sdk/tree/master/examples/simple
一切都还可以,但是当我尝试编辑一些代码时,我的意思是我希望在登录成功后显示对话框发布消息,如下所示:
public void onAuthSucceed() {
mText.setText("You have logged in! ");
//This is the code to call the post message dialog.
mFacebook.dialog(Example.this, "feed",new SampleDialogListener());
}
Run Code Online (Sandbox Code Playgroud)
我在logcat中收到此错误:
03-02 13:32:08.629: E/AndroidRuntime(14991): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@405180f8 is not valid; is your activity running?
03-02 13:32:08.629: E/AndroidRuntime(14991): at android.view.ViewRoot.setView(ViewRoot.java:532)
03-02 13:32:08.629: E/AndroidRuntime(14991): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
03-02 13:32:08.629: E/AndroidRuntime(14991): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
03-02 13:32:08.629: E/AndroidRuntime(14991): at android.view.Window$LocalWindowManager.addView(Window.java:424)
03-02 13:32:08.629: E/AndroidRuntime(14991): at android.app.Dialog.show(Dialog.java:241)
03-02 13:32:08.629: E/AndroidRuntime(14991): at com.facebook.android.Facebook.dialog(Facebook.java:780)
03-02 13:32:08.629: …Run Code Online (Sandbox Code Playgroud) isFinishing()在http://developer.android.com/reference/android/app/Activity.html上阅读Android文档后,我感到困惑
如果我打电话isFinishing()的onPause(),返回值是什么isFinishing()呼,应在以下3个方案是什么?
我确信在方案1中结果finish()将是真的,在方案3 中将是错误的.
情景2怎么样?在方案2中会isFinishing()返回true还是false?
可能重复:
检查活动是否处于活动状态
如果活动正在显示,我想在屏幕上显示进度对话框.但是当活动窗口没有显示时,它将不会执行任何操作.请建议,如何检查我的活动是否显示?
我有一个应用程序,我希望仅当服务的活动在前台(活动)时才更新活动(精确列出活动)
我可以使用ListActivity Intent,但问题是即使它在后台也会引发活动.
我还考虑过在ListAdapter上使用registerDataSetObserver,但是要求更新游标.从外部服务更新光标可能不可行.
我们有一个通用的解决方案吗?
我知道这是一个重复的问题,但我看到了整个地方,找不到适合我的解决方案......
我有一个从TMDB API获取电影数据的应用程序,它使用同步适配器逐页获取,基本上它运行很好,除非在应用程序打开且用户不在第一页时运行同步适配器的定期同步,所以我的选择是强制更新电影列表并将用户发送到列表的顶部,这是非常糟糕的体验,因此不被视为一个选项,或者我可以检查应用程序是否正在运行,无论是在前台还是在应用程序中堆栈,它对用户不可见但仍在运行,所以通过搜索得到的最好的是这段代码:
public static boolean isAppRunning(final Context context, final String packageName) {
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
if (procInfos != null) {
for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
if (processInfo.processName.equals(packageName))
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
但无论出于什么原因,它都无法正常工作并且即使我通过刷卡杀死它也看到应用程序正在运行,起初我认为这是因为我有一个同步适配器可以被认为是运行的应用程序所以我使用了另一个进程它在清单中使用了
android:process=":service"
Run Code Online (Sandbox Code Playgroud)
但它不起作用
还考虑在活动的onStart和onStop中使用变量,但不保证在关闭或杀死应用程序时会调用onStop,因此试图避免使用此方法
这是我的manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="inc.mourad.ahmed.watchme">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<permission
android:name="inc.ahmed.mourad.ACCESS_WATCHME_DATABASE"
android:label="access my movies content provider"
android:protectionLevel="dangerous" />
<permission
android:name="inc.ahmed.mourad.ACCESS_WATCHME_SYNC_SERVICE"
android:label="access …Run Code Online (Sandbox Code Playgroud) 我有很多变量,例如isOnPause,isOnStop等等。当 Activity 调用时,onStop()我isOnStop = true想知道是否存在像这样的官方方法this.isOnPause(), this.isOnStop()?
我查了Activity的API参考,只看到了isDestroyed(),但是没有isStoped(), isPaused()。
protect final void onStop(){
isOnStop = true // I don't think this is good way to do this.
}
Run Code Online (Sandbox Code Playgroud)
所以,我想知道是否存在像这样的官方方法this.isOnPause(), this.isOnStop()?